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 une autorisation d'écriture avec le répertoire .gem. J'aimerais savoir pourquoi gem n'installe pas les fichiers dans mon répertoire home .gem en premier? 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 à l'échelle du système Ruby install, devenez root. Par exemple:
$ Sudo gem install hpricot
Cependant, l'approche moderne dans de nombreuses circonstances, y compris dans le développement, consiste à utiliser un outil qui vous permet d'installer et d'utiliser facilement Ruby en tant qu'utilisateur normal. Cela vous permet d'éviter d'avoir à devenir root. Il sont quelques-uns de ces outils, 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
à ~/.gem
,
Pour la session de terminal en cours, tapez simplement:
export GEM_HOME=~/.gem
export GEM_PATH=~/.gem
Si vous souhaitez les définir à chaque fois que vous ouvrez un terminal, ajoutez les commandes ci-dessus à votre ~/.bashrc
fichier.
Pour une solution plus complète de configuration d'un Ruby environnement personnalisé, voir ce tutoriel de Site5KB , qui décrit l'utilisation d'un .gemrc
fichier.
J'obtenais cette erreur sur mon serveur partagé via l'hébergement 1and1. ma solution a été d'ajouter le --user-install
option, qui l'installe simplement pour votre utilisateur connecté (c'est tout ce dont vous avez besoin dans un environnement de serveur partagé) exemple; installer sass
gem install sass --user-install
Si vous utilisez rbenv et que cela se produit, vous devez ajouter ce qui suit à votre .bash_profile:
export RBENV_ROOT="$HOME/.rbenv"
if [ -d $RBENV_ROOT ]; then
export PATH="$RBENV_ROOT/bin:$PATH"
eval "$(rbenv init -)"
fi
réinstaller Ruby résoudre mon problème.
brew install Ruby