ChatGPT解决这个技术问题 Extra ChatGPT

gem安装权限问题

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


D
David LeBauer

尝试将 GEM_HOMEGEM_PATH 设置为 ~/.gem

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

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

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

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


这才是真正的正确答案。如果你不需要,不要去使用 sudo 安装东西。
答案中的链接似乎已更改。不过,本指南的第一步为我完成了同样的事情:kb.site5.com/ruby-on-rails/…
@MikeSlutsky 感谢您指出这一点。将来,如果您发现一个损坏的链接(或已更改且不再相关的链接),如果您认为您有合适的替代品,请随时提交“编辑”建议。
@meagar 我更新了@Mike-Slutsky 给出的链接,但注意到它是.gemrc 配置的文档。对于 ruby gem 新手来说,这是令人生畏的,当我理解您的解决方案是我添加的更简单的解决方案时。该解决方案对我有用,但作为 ruby 新手,请确认我的更改符合您的意图。
请记住将您的 GEM_PATH 添加到全局 PATH。这就是我所做的: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
y
yfeldblum

对于系统范围的 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

不要使用 sudo,因为您将以 root 身份安装它们,并且在使用普通用户时无权访问它们。使用 RVM 和 gemsets。
例如rvm gem install hpricot
您可能想删除此答案。您将保留积分,并为人们省去很多麻烦。
M
Max

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

gem install sass --user-install

有趣的是,虽然我已经指定了 --user-install,但我收到了这个错误。
我正在努力使用 Jenkins 安装 gem,这对我有帮助...谢谢
K
Kevin Qi

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

export RBENV_ROOT="$HOME/.rbenv"

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

j
jackyshan

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

brew install ruby