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