2010-04-12 18 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. 

de usuario de inicio de sesión actual, y el usuario qichunre tener permiso de escritura con .gem dir.I le gustaría saber por qué la gema no instala archivos en mi casa .gem dir primero? Por ello, mi joya común primero desea instalar archivos en /opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8joya instalar problema de permisos se qichunren

Respuesta

33

Para una instalación de Ruby en todo el sistema, conviértase en root. Por ejemplo:

$ sudo gem install hpricot 

Sin embargo, el enfoque moderno en muchas circunstancias, incluso en el desarrollo, es el uso de una herramienta que le permite instalar y utilizar Rubí como un usuario normal con facilidad. Esto le permite evitar tener que convertirse en root. Hay algunas de esas herramientas, y la que yo uso es 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

No use sudo porque los instalará como root y no tendrá acceso a ellos cuando use su usuario normal. Use RVM y gemas. – rxgx

+4

p. 'rvm gem install hpricot' – AJP

+1

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

124

Inténtelo de GEM_HOME y GEM_PATH a ~/.gem,

Para el actual sesión de terminal, sólo tiene que escribir:

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

Si desea que éstas se establecen cada vez que abra un terminal, agrega los comandos anteriores a su archivo ~/.bashrc.

Para obtener una solución más completa para configurar un entorno de ruby ​​personalizado, consulte this tutorial from Site5KB, que describe el uso de un archivo .gemrc.

+1

Mucho más seguro! ¡Gracias! – Munhitsu

+6

Esta es la respuesta correcta real. No vayas empuñando sudo instalando cosas si no es necesario. –

+0

El enlace en la respuesta parece haber cambiado. El primer paso de esta guía también logró lo mismo para mí: http://kb.site5.com/ruby-on-rails/how-to-setup-a-custom-rubygems-environment –

2

Si está utilizando rbenv Y esto está sucediendo, es necesario agregar lo siguiente a su .bash_profile:

export RBENV_ROOT="$HOME/.rbenv" 

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

que estaba recibiendo este error en mi servidor de hosting compartido a través 1and1. mi solución estaba agregando la opción --user-install, que simplemente la instala para su usuario conectado (que es todo lo que necesita en un entorno de servidor compartido) ejemplo; instalando sass

gem install sass --user-install