Le Gemfile et bundler

Le Gemfile c’est bien et Bundler c’est formidable.

Gemfile

Avec le Gemfile, on peut (+/-) fixer (ou pas, au choix), les versions des gems utilisées.

Pour ça, plusieurs syntaxes sont possibles, un exemple étant bien plus parlant :

gem 'nokogiri'
gem 'rails', '3.0.0.beta3'
gem 'rack', '>=1.0'
gem 'thin', '~>1.1'

~> 2.0.3 équivaut à >= 2.0.3 et < 2.1.

~> 2.1 équivaut à >= 2.1 et < 3.0.

Bundle install

Petit rappel, lors d’un bundle install, bundler résout exlusivement les nouvelles versions de gems non résolues dans le Gemfile.lock.

Options dispos/utiles :
–clean Efface toutes les traces des gems non utilisées
–quiet pas de log durant l’installation
–without liste séparée par des espaces des gems à skip, combinable avec –with

Bundle update

Options dispos/utiles :
–group met à jour exclusivement les gems de ce group
–force redownload toutes les gems
–patch, –minor, –major met à jour s’il trouve une nouvelle patch, minor ou major

# Command Line Result
————————————————————
1 bundle update –patch ‘foo 1.4.5’, ‘bar 2.1.1’
2 bundle update –patch foo ‘foo 1.4.5’, ‘bar 2.1.1’
3 bundle update –minor ‘foo 1.5.1’, ‘bar 3.0.0’

Bundle exec

Toujours utiliser bundle exec, qui utilise exclusivement les gems du projet et pas celles du système.
Cela permet d’assurer une cohérence plus pointue entre les différents environnements, et d’être en corrélation avec le Gemfile.

Bundle add

Permet d’ajouter une gem dans le Gemfile tout en spécifiant sa version (la dernière publiée si pas spécifiée lors de la commande) ET de faire le bundle install
Top pour encore une fois garder de la cohérence et ne biaiser un bundle update malencontreux

Options dispos/utiles
–version, -v spécifie la version
–group, -g spécifie le/les groupes
–source, -s spécifie la source si différente de la source du Gemfile

Bundle clean

Permet de supprimer les gems non utilisées du dossier bundler (ATTENTION à où sont installées les gems, et qui/quoi les utilise !!)
–dry-run pour avoir une idée de ce qui va être supprimé

 

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.