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.
当前登录用户是qichunren,qichunre 用户对.gem 目录有写权限。我想知道为什么gem 不先将文件安装到我家的.gem 目录中?为什么我的 gem common 首先要安装文件到 /opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8
尝试将 GEM_HOME
和 GEM_PATH
设置为 ~/.gem
,
对于当前终端会话,只需键入:
export GEM_HOME=~/.gem
export GEM_PATH=~/.gem
如果您希望在打开终端时设置这些,请将上述命令添加到您的 ~/.bashrc
文件中。
有关设置自定义 ruby 环境的更全面的解决方案,请参阅 this tutorial from Site5KB,其中描述了使用 .gemrc
文件。
对于系统范围的 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
rvm gem install hpricot
我通过 1and1 托管在我的共享服务器上收到此错误。我的解决方案是添加 --user-install
选项,它只是为您的登录用户安装它(这是您在共享服务器环境中所需要的)示例;安装 sass
gem install sass --user-install
--user-install
,但我收到了这个错误。
如果您正在使用 rbenv 并且正在发生这种情况,则需要将以下内容添加到您的 .bash_profile 中:
export RBENV_ROOT="$HOME/.rbenv"
if [ -d $RBENV_ROOT ]; then
export PATH="$RBENV_ROOT/bin:$PATH"
eval "$(rbenv init -)"
fi
重新安装 ruby 解决我的问题。
brew install ruby
.gemrc
配置的文档。对于 ruby gem 新手来说,这是令人生畏的,当我理解您的解决方案是我添加的更简单的解决方案时。该解决方案对我有用,但作为 ruby 新手,请确认我的更改符合您的意图。PATH=$HOME/.gems/bin:$HOME/bin:$PATH GEM_HOME=$HOME/.gems GEM_PATH=$HOME/.gems:/var/lib/gems/2.1.0:/usr/lib/ruby/gems/2.1.0 export PATH GEM_HOME GEM_PATH