problème de permission d’installation gem

qichunren@zhaobak:~> gem install hpricot ERROR: While executing gem ... (Gem::FilePermissionError) You don't have write permissions into the /opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8 directory. 

L’utilisateur de connexion actuel est qichunren, et l’utilisateur qichunre a la permission d’écrire avec le répertoire .gem. Je voudrais savoir pourquoi gem n’installe pas les fichiers dans mon répertoire .gem en premier lieu? Pourquoi mon gem commun veut d’abord installer des fichiers dans /opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8

Pour une installation Ruby à l’échelle du système, devenez root. Par exemple:

 $ sudo gem install hpricot 

Cependant, l’approche moderne dans de nombreuses circonstances, y compris en développement, consiste à utiliser un outil qui vous permet d’installer et d’utiliser facilement Ruby en tant qu’utilisateur normal. Cela vous évite d’avoir à devenir root. Il existe quelques outils de ce type, et celui que j’utilise est RVM .

 # install rvm into your ~ $ \curl -sSL https://get.rvm.io | bash -s stable # install latest version of ruby into your ~ $ rvm install ruby # installs a gem into your ~ $ gem install $SOME_GEM_NAME 

Essayez de définir GEM_HOME et GEM_PATH sur ~/.gem ,

Pour la session de terminal en cours, tapez simplement:

 export GEM_HOME=~/.gem export GEM_PATH=~/.gem 

Si vous souhaitez qu’elles soient définies chaque fois que vous ouvrez un terminal, ajoutez les commandes ci-dessus à votre fichier ~/.bashrc .

Pour une solution plus complète de configuration d’un environnement Ruby personnalisé, consultez ce tutoriel à partir de Site5KB , qui décrit l’utilisation d’un fichier .gemrc .

Si vous utilisez rbenv et que cela se produit, vous devez append ce qui suit à votre fichier .bash_profile:

 export RBENV_ROOT="$HOME/.rbenv" if [ -d $RBENV_ROOT ]; then export PATH="$RBENV_ROOT/bin:$PATH" eval "$(rbenv init -)" fi 

Je recevais cette erreur sur mon serveur partagé via l’hébergement 1and1. ma solution consistait à append l’option --user-install , qui l’installe par exemple pour votre utilisateur connecté (c’est tout ce dont vous avez besoin dans un environnement de serveur partagé); installer sass

 gem install sass --user-install 

réinstaller ruby ​​résoudre mon problème.

 brew install ruby