2010-04-12 14 views
60
[email protected]:~> 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 actuel est qichunren, et l'utilisateur qichunre a l'autorisation d'écriture avec .gem dir.Je voudrais savoir pourquoi gem pas installer les fichiers dans mon home.gem dir d'abord? Pourquoi mon petit bijou commun d'abord à installer des fichiers dans /opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8gem installer autorisation problème

Répondre

33

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 dans le développement, est d'utiliser un outil qui vous permet de facilement installer et d'utiliser Ruby en tant qu'utilisateur normal. Cela vous permet d'éviter d'avoir à devenir root. Il y a 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 
+36

N'utilisez pas sudo car vous les installerez en tant qu'utilisateur root et vous n'aurez pas accès à eux lorsque vous utiliserez votre utilisateur normal. Utilisez RVM et gemsets. – rxgx

+4

par exemple. 'rvm gem installer hpricot' – AJP

+1

$ \ curl -L https://get.rvm.io –

124

Essayez de régler GEM_HOME et GEM_PATH-~/.gem,

Pour la session de terminal en cours, il suffit de taper:

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

Si vous souhaitez ceux-ci soient réglées chaque fois que vous ouvrez un terminal, ajoutez les commandes ci-dessus à votre fichier ~/.bashrc.

Pour une solution plus complète à la configuration d'un environnement Ruby personnalisé, voir this tutorial from Site5KB, qui décrit l'utilisation d'un fichier .gemrc.

+1

Beaucoup plus sûr! Merci! – Munhitsu

+6

Ceci est la bonne réponse. Ne va pas en utilisant sudo pour installer des choses si tu n'as pas à le faire. –

+0

Le lien dans la réponse semble avoir changé. La première étape de ce guide a accompli la même chose pour moi cependant: http://kb.site5.com/ruby-on-rails/how-to-setup-a-custom-rubygems-environment –

2

Si vous utilisez rbenv et ce qui se passe, 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 
1

Je recevais cette erreur sur mon serveur partagé par l'hébergement 1and1. ma solution a été l'ajout de l'option --user-install, qui vient de l'installer pour votre utilisateur connecté (qui est tout ce dont vous avez besoin dans un environnement de serveur partagé) exemple; installer sass

gem install sass --user-install