web-dev-qa-db-fra.com

Installer la gemme dans le dossier local

J'ai des privilèges limités sur une machine partagée que j'utilise, donc je ne peux pas installer de gemmes comme d'habitude. Par exemple:

$ gem install request-log-analyzer
ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions into the /usr/lib/Ruby/gems/1.8 directory. 

Est-il possible d'installer une gemme localement? (si c'est important, j'essaye d'installer ce bijo .)

J'ai vu un certain nombre de publications sur Stack Overflow qui parlaient de l'utilisation de Bundler ou de gemfiles, mais je n'installe pas cette gemme pour un Ruby on Rails - I je veux juste l'utiliser de façon isolée.

J'utilise Linux, mais je ne sais pas quelle saveur cependant.

28
mchen.ja

Ajouter le --local drapeau à votre installation:

gem install --local request-log-analyzer

Si cela pose problème, essayez de télécharger la gemme manuellement et de pointer gem directement vers elle en utilisant:

gem install --local path/to/gem/filename.gem

Si vous souhaitez l'installer chez votre utilisateur, selon rubygems :

Lorsque vous utilisez l'option --user-install, RubyGems installe les gemmes dans un répertoire de votre répertoire personnel, quelque chose comme ~/.gem/Ruby/1.9.1. Les commandes fournies par les gemmes que vous avez installées se retrouveront dans ~/.gem/Ruby/1.9.1/bin. Pour que les programmes qui y sont installés soient disponibles pour vous, vous devez ajouter ~/.gem/Ruby/1.9.1/bin à votre variable d'environnement PATH.

La commande pour cela serait simplement

gem install --user-install request-log-analyzer
27
jkeuhlen

Tu peux essayer:

gem install --user-install gem_name
53
Tho Nguyen

Vous pouvez simplement utiliser RVM: Ruby Version Manager . Il s'agit d'un gestionnaire de version complet, dans la lignée du gestionnaire de version de nœud (nvm) et d'autres, en ce qu'il vous permet d'avoir différentes versions de Ruby et différentes collections de gemmes pour chaque projet. Il fait le travail de garder les gemmes isolées les unes des autres ainsi que du système Ruby, mais au détriment de l'apprentissage d'un gestionnaire de version complet.

Lorsqu'il est exécuté sans root, il s'installe localement dans ~/.rvm et n'affecte pas les autres utilisateurs.

1
rholmes