Проблема разрешения установки gem

[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.

Текущий пользователь входа - qichunren, и у пользователя qichunre есть разрешение на запись в .gem dir.I хотел бы знать, почему gem не устанавливает файлы в мой домашний .gem dir? Почему мой gem common сначала хочет установить файлы в/opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8

Ответ 1

Для системной Ruby-установки запустите root. Например:

$ sudo gem install hpricot

Однако современный подход во многих случаях, в том числе в разработке, заключается в использовании инструмента, который позволяет вам легко установить и использовать Ruby как обычный пользователь. Это позволяет избежать необходимости запускать root. Есть несколько таких инструментов, и тот, который я использую, 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

Ответ 2

Попробуйте установить GEM_HOME и GEM_PATH на ~/.gem,

Для текущего сеанса терминала просто введите:

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

Если вы хотите, чтобы они были установлены всякий раз, когда вы открываете терминал, добавьте приведенные выше команды в ваш файл ~/.bashrc.

Для более полного решения для настройки настраиваемой среды ruby ​​см. этот учебник от Site5KB, в котором описывается использование файла .gemrc.

Ответ 3

Если вы используете rbenv, и это происходит, вам нужно добавить следующее в свой .bash_profile:

export RBENV_ROOT="$HOME/.rbenv"

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

Ответ 4

Я получал эту ошибку на моем общем сервере через хостинг 1and1. мое решение добавляло параметр --user-install, который просто устанавливает его для вашего зарегистрированного пользователя (что вам нужно в общей серверной среде) пример; установка sass

gem install sass --user-install