Проблема разрешения установки 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