rails guides gems gemas ejemplos ruby-on-rails ruby gem

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