rbenv pour les développeurs
Date de publication : 27/01/2012.
Par
Synbioz

Il y a quelques jours, j'ai décidé d'essayer
rbenv dont j'entendais beaucoup parler pour sa facilité de mise en œuvre côté serveur.
rbenv est un gestionnaire de versions de Ruby comparable à
RVM mais qui m'a rapidement séduit par sa légèreté et son élégance. C'est rapide, facile à mettre en œuvre, pratique à l'utilisation et tout à fait dans la philosophie des utilitaires Unix.
J'ai donc supprimé RVM au profit de rbenv. N'allez pas croire que RVM est un mauvais outil, je me sens juste plus à l'aise avec rbenv qui correspond mieux à mes attentes.
Utilisation quotidienne
Installation
Définition des versions
Les gemsets
rbenv et Pow
Remerciements
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
$ 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 :
Relancez un shell, rbenv est prêt à être utilisé.
Définition des versions
$ 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 :
$ 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 :
Pour finir, vous pouvez connaitre les versions installées :
et celles disponibles à l'installation :
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 :
$ 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 :
---
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 :
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
Nous tenons à remercier
ClaudeLELOUP pour sa relecture attentive de cet article.


Les sources présentées sur cette page sont libres de droits
et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ©
2012 Synbioz. Aucune reproduction,
même partielle, ne peut être faite de ce site et de l'ensemble de son contenu :
textes, documents, images, etc. sans l'autorisation expresse de l'auteur.
Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 €
de dommages et intérêts.
Cette page est déposée.