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 dir的写权限。我想知道为什么gem不能先将文件安装到我家.gem dir中?为什么我的gem常见的第一个想要将文件安装到/opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8
答案 0 :(得分:154)
尝试将GEM_HOME
和GEM_PATH
设为~/.gem
,
对于当前的终端会话,只需输入:
export GEM_HOME=~/.gem
export GEM_PATH=~/.gem
如果您希望在打开终端时设置这些命令,请将以上命令添加到~/.bashrc
文件中。
有关设置自定义ruby环境的更全面的解决方案,请参阅this tutorial from Site5KB,其中介绍了如何使用.gemrc
文件。
答案 1 :(得分:47)
对于系统范围的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 :(得分:5)
我通过1and1托管在我的共享服务器上收到此错误。
我的解决方案是添加--user-install
选项,它只是为您的登录用户安装它(这是您在共享服务器环境中所需的全部内容)
例;安装sass
gem install sass --user-install
答案 3 :(得分: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 :(得分:0)
重新安装ruby解决了我的问题。
brew install ruby