Ruby : installer des gems pour l’utilisateur courant

Il est parfois utile d’ajouter des gems spécifiques pour l’utilisateur courant, soit parce que vous n’avez pas les droits administrateur, soit parce que vous avez besoin d’une version précise.

Pour cela il faut utiliser l’option –user-install :

$ gem install capistrano -v "=2.15.5" --user-install

Les gems seront installées dans votre répertoire $HOME dans le sous-répertoire .gem/ruby/x_y_z 

Si des « binaires » sont associés à la gem, ils seront dans le répertoire .gem/ruby/x_y_z/bin

Pour pouvoir les utiliser, il faut rajouter ce chemin dans votre $PATH. Par exemple dans votre .bashrc :

if which ruby >/dev/null && which gem >/dev/null; then
    PATH="$(ruby -rubygems -e 'puts Gem.user_dir')/bin:$PATH"
fi

Exemple pour capistrano :

$ which cap
/var/www/.gem/ruby/1.9.1/bin/cap