“ sudo gem install”或“ gem install”和 gem 位置

运行“ sudo gem list --local”和“ gem list --local”会得到不同的结果。我的 gem 路径被设置为我的主文件夹,并且只包含来自“ gem list --local”的 gem。

把 gem 安装在计算机上的不同目录中可能不太好,所以我是否应该设置不同的 gem 路径,以及在安装某些东西时是否应该总是使用 sudo

my ~/.profile
export PATH=/opt/local/bin:/opt/local/sbin:$PATH
export PATH="/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:$PATH"

~/. bash _ profile 为空。

151229 次浏览

与其他文章相反,我建议在安装 gem 时不要使用 sudo

相反,我建议你安装 一个 href = “ https://RVM.io/”rel = “ noReferrer”> RVM ,开始一个幸福的生活与便携式宝石家园和不同版本的 Ruby 都生活在一个屋檐下。

对于外行人,来自 文件:

RVM 是一个命令行工具,它允许我们轻松地安装、管理和使用多个 ruby 环境和 gem 集。

使用 sudo安装 gem 比仅使用 gem install更糟糕的原因是,它将 所有用户的 gem 安装为 root。如果你是唯一一个使用这台机器的人,这可能没问题,但如果你不是,这可能会导致奇怪。

如果您决定抛弃所有的 gem 并重新开始,那么作为一个非 root 用户这样做会更容易、更安全。

如果您决定使用 RVM,那么使用 sudo将导致各种奇怪的情况,因为通过 RVM安装的每个 Ruby 版本都有自己的 GEM _ HOME。

另外,如果您可以使您的开发环境尽可能接近您的生产环境,并且在生产环境中您很可能以非 root 用户的身份安装 gem,那么这也是很好的。

还可以在本地环境中安装 gem (不使用 sudo)

gem install --user-install <gemname>

我建议这样做,这样即使是单用户计算机也不会影响系统级配置。

您可以通过使用 gem environment查看 Gempath 来检查 gem 的去向。

如果需要将本地安装的二进制文件添加到路径中,可以向 bashrc 添加如下内容:

if which ruby >/dev/null && which gem >/dev/null; then
PATH="$(ruby -r rubygems -e 'puts Gem.user_dir')/bin:$PATH"
fi

(来自 http://guides.rubygems.org/faqs/#user-install)

您可以使用以下方法将 gem 安装到您的 Rails 应用程序中的特定文件夹(示例供应商/)中:

bundle install --path vendor
sudo gem install --no-user-install <gem-name>

将安装您的 gem 全球范围内,也就是说,它将可用于所有用户的上下文。

相关的(对于 bundler 用户) ,如果您想要一个更轻便的 RVM 替代品,它将把所有东西放在一个用户特定的众所周知的目录中,我建议使用:

bundle install --path $HOME/.gem

如果您希望将 gem 安装到

gem install --user-install GEMNAME

将安装他们,.gem/ruby/RUBYVERSION在您的家庭主目录。(见其他评论这个问题关于 --user-install。)

这将使宝石可见的 gem list,通过 gem uninstall卸载等,而不需要 sudo访问。Gem 或 bundler 安装的可运行脚本可以通过添加

$HOME/.gem/ruby/RUBYVERSION/bin

你的 $PATHgem本身告诉你,如果它没有设置时,你做 gem install --user-install

更好的方法是,将 --user-install放在 ~/. gemrc 文件中,这样就不必每次都键入它

gem: --user-install

以防你

  • 用 sudo 安装了红宝石宝石
  • 想安装没有 sudo 的 gem
  • 不想安装 rvm/rbenv

在你的 .bash_profile中加入以下内容:

export GEM_HOME=/Users/‹your_user›/.gem
export PATH="$GEM_HOME/bin:$PATH"

在终端或 source ~/.bash_profile中打开一个新的标签,然后就可以开始了!

在 Mac 上安装 Ruby gems 是常见的困惑和挫折来源。不幸的是,大多数解决方案是不完整的、过时的,并且提供了糟糕的建议。我很高兴这里接受的答案是不要使用 sudo,你永远不应该需要这样做,特别是如果你不明白它是做什么的。虽然我在几年前使用了 RVM,但我建议在2020年使用 chruby

这里的一些其他答案提供了安装 gem 的替代选项,但是没有提到这些解决方案的局限性。缺少的是对各种选择的解释和比较,以及为什么你可能会选择其中之一。我已经尝试过最常见的情况 在我的 在 Mac 上安装 Ruby gems 的权威指南里。