ruby on rails - guides - problema de permiso de instalación de gem
ruby gems install (4)
Estaba obteniendo este error en mi servidor compartido a través del alojamiento 1 y 1. mi solución era agregar 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
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.
El usuario actual de inicio de sesión es qichunren, y el usuario de qichunre tiene permiso de escritura con .gem dir. Me gustaría saber por qué joya no instala archivos en mi directorio home .gem primero? Por qué mi joya es común primero quiero instalar archivos en /opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8
Intenta configurar GEM_HOME
y GEM_PATH
como ~/.gem
,
Para la sesión de terminal actual, simplemente escriba:
export GEM_HOME=~/.gem
export GEM_PATH=~/.gem
Si desea que estos se configuren cada vez que abra un terminal, agregue los comandos anteriores a su archivo ~/.bashrc
.
Para obtener una solución más completa para configurar un entorno ruby personalizado, consulte este tutorial de Site5KB , que describe el uso de un archivo .gemrc
.
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, incluido el desarrollo, es usar una herramienta que le permita instalar y usar Ruby como un usuario normal. Esto le permite evitar tener que convertirse en root. Hay algunas de esas herramientas, y la que 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
Si está utilizando rbenv y esto está sucediendo, debe agregar lo siguiente a .bash_profile:
export RBENV_ROOT="$HOME/.rbenv"
if [ -d $RBENV_ROOT ]; then
export PATH="$RBENV_ROOT/bin:$PATH"
eval "$(rbenv init -)"
fi