gem安装权限问题

问题描述 投票:78回答:5
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

ruby-on-rails ruby gem
5个回答
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

154
投票

尝试将GEM_HOMEGEM_PATH设置为~/.gem

对于当前终端会话,只需键入:

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

如果您希望在打开终端时设置这些,请将以上命令添加到~/.bashrc文件中。

有关设置自定义ruby环境的更全面的解决方案,请参阅this tutorial from Site5KB,其中介绍了使用.gemrc文件。


5
投票

我通过1and1托管在我的共享服务器上收到此错误。我的解决方案是添加--user-install选项,它只是为您的登录用户安装它(这是您在共享服务器环境中所需的全部)示例;安装sass

gem install sass --user-install

3
投票

如果您正在使用rbenv并且发生这种情况,则需要将以下内容添加到.bash_profile:

export RBENV_ROOT="$HOME/.rbenv"

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

0
投票

重新安装ruby解决我的问题。

brew install ruby
© www.soinside.com 2019 - 2024. All rights reserved.