Utilisation quotidienne

Voici un petit résumé des étapes à suivre et des pièges potentiels. Étant sous OS X, j'ai décidé d'installer rbenv via HomeBrew. Il est également possible d'installer rbenv via Git.

Installation

 
Sélectionnez
$ brew update
$ brew install rbenv
$ brew install ruby-build

Vous avez maintenant votre installation de base. Nous avons installé ruby-build qui va nous permettre de construire facilement nos versions de Ruby sans avoir à récupérer manuellement les sources. Rbenv ayant pour unique but de gérer la version de Ruby en cours d'utilisation, il préfère déléguer ses tâches à des paquets dédiés bien que vous le verrez, à l'utilisation c'est intégré de manière transparente.

Il faut maintenant demander à votre shell d'utiliser rbenv, en ajoutant ceci à votre .zsh_profil ou .bash_profile :

 
Sélectionnez
eval "$(rbenv init -)"

Relancez un shell, rbenv est prêt à être utilisé.

Définition des versions

 
Sélectionnez
$ rbenv install 1.9.2-p290
$ rbenv global 1.9.2-p290

Vous avez maintenant Ruby 1.9.2 d'installé et défini comme version par défaut.

Si pour un projet donné vous devez utiliser une autre version :

 
Sélectionnez
$ cd Code/foo
$ rbenv local ree-1.8.7-2011.03

rbenv local a pour effet de créer un fichier .rbenv-version qui définit la version de Ruby à utiliser dans ce répertoire.

Il est également possible de passer d'une version à l'autre quand bon vous semble :

 
Sélectionnez
$ rbenv shell 1.9.3-p0

Pour finir, vous pouvez connaitre les versions installées :

 
Sélectionnez
$ rbenv versions

et celles disponibles à l'installation :

 
Sélectionnez
$ rbenv install

Les gemsets

Les utilisateurs de rbenv ont tendance à penser que Bundler est largement suffisant pour gérer les dépendances. Nul besoin de gemset quand le projet lui-même peut être le gemset. Si votre projet contient un Gemfile alors pourquoi ne pas faire :

 
Sélectionnez
$ bundle install --path vendor/bundle

Vos gems seront directement installés dans le répertoire vendor/bundle de votre projet.

Pensez à ne pas versionner ce répertoire, ce serait un non-sens dans le contexte de l'utilisation de Bundler.

Il est possible d'automatiser ce comportement de Bundler en ajoutant ceci à votre ~/.bundle/config :

 
Sélectionnez
---
    BUNDLE_PATH: vendor/bundle

Pour ceux qui ne sont pas convaincus et qui continuent à penser que les gems d'un projet doivent être gérés par un “vrai” gemset, il reste l'extension rbenv-gemset.

rbenv et Pow

J'ai rencontré un problème avec Pow après avoir supprimé RVM, mes instances ne répondaient plus et les logs montraient clairement un problème de version de Ruby.

Il s'avère que Pow n'a pas connaissance des chemins nécessaires au fonctionnement de rbenv de manière automatique même si votre shell fonctionne parfaitement.

Le problème se règle en lui donnant les informations nécessaires via le fichier ~/.powconfig :

 
Sélectionnez
export PATH=/Users/cavigneaux/.rbenv/shims:/Users/cavigneaux/.rbenv/bin:$PATH

J'espère que ces quelques informations vous aideront et vous donneront envie de faire un petit essai de rbenv.

Remerciements

Cet article a été publié avec l'aimable autorisation de Synbioz, l'article original (rbenv pour les développeurs) peut être vu sur le blog de Synbioz.

Nous tenons à remercier ClaudeLELOUP pour sa relecture attentive de cet article.