【问题标题】:You don't have write permissions for the /Library/Ruby/Gems/2.3.0 directory [duplicate]您没有 /Library/Ruby/Gems/2.3.0 目录的写入权限
【发布时间】:2019-01-10 21:07:39
【问题描述】:

当我在 MacOS 10.13.x 中使用命令gem install bundler 时,错误是:

您没有 /Library/Ruby/Gems/2.3.0 目录的写入权限。

$ gem install bundler
Fetching: bundler-1.16.2.gem (100%)
ERROR:  While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /Library/Ruby/Gems/2.3.0 directory.

【问题讨论】:

标签: macos rubygems bundle


【解决方案1】:
sudo gem install -n /usr/local/bin bundler

【讨论】:

  • 这是一种不好的做法,不推荐。阅读更多here.
【解决方案2】:

这基本上是this 问题的重复,我已经在其中发布了解决问题的详细答案。我认为与其维护两个单独的答案,不如在这里链接到我的答案,因为同样的解决方案适用: https://stackoverflow.com/a/54873916/928191

【讨论】:

  • 感谢您的详细回答。对我来说,使用 zsh,ruby 安装推荐了命令echo 'export PATH="/usr/local/opt/ruby/bin:$PATH"' >> ~/.zshrc。之后,我跑了source ~/.zshrc。
  • 我希望我能代表提问者接受这个答案。一整天都在尝试诊断“mkmf.rb 在 /usr/lib/ruby/include/ruby.h 找不到 ruby​​ 的头文件”,“Permission denied @ dir_s_mkdir - /Library/Ruby/Gems”,取得所有权/System/Library 文件夹,将 ruby​​ 重置为空白状态,用时间机器恢复,最后从我的 Mac 上完全擦除 ruby​​,我终于遇到了一个解决方案
【解决方案3】:

如前所述,在 Mac 上,系统 ruby​​ 由 root 拥有,使用 sudo 针对该版本安装东西是不安全的。如果您将每个 gem 都以 root 身份运行,那将是一场安全噩梦。 不要那样做

我将引导您完成我的步骤,因为之前的答案假设了一些命令行 foo 并且添加的详细信息可能对某人有用。

仔细检查我们正在运行旧的、系统提供的 ruby​​

which ruby
/usr/bin/ruby

(这是系统路径)

ruby -v
ruby 2.3.7

(旧版)

brew install ruby

或install brew first

最后,安装说:

/usr/local/Cellar/ruby/2.6.3

让它显示在路径中first

PATH=/usr/local/Cellar/ruby/2.6.3/bin:$PATH

仔细检查

which ruby
/usr/local/Cellar/ruby/2.6.3/bin/ruby

复查版本

ruby --version
ruby 2.6.3p62

使路径更新永久化(否则每次要使用 ruby​​ 时都必须更新路径)

echo  PATH=/usr/local/Cellar/ruby/2.6.3/bin:$PATH >> ~/.bash_profile

【讨论】:

    【解决方案4】:

    最好不要一路sudo。

    正确的方法是在您通过brew install ruby 在您的Mac 中安装最新的ruby 后,source ~/.zshrc 为我工作

    【讨论】:

      猜你喜欢
      • 2018-12-10
      • 2021-01-31
      • 2015-02-13
      • 2021-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-29
      相关资源
      最近更新 更多