你没有/Library/Ruby/Gems/2.3.0目录的写入权限。(Mac用户)

445

以下是我需要做的事情。

要运行规范测试,您需要安装 RSpec。首先,在项目的根目录中运行 gem install bundler 命令。然后运行 bundle install。要运行单个规范测试文件,请运行如下命令:bundle exec rspec spec/00_hello_spec.rb。要一次性运行所有规范测试,请运行 bundle exec rspec 命令。

所以,我在终端中输入了 gem install bundler 命令,但出现了以下错误:

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

这是在 Atom 项目文件中看到的错误信息。

source "https://rubygems.org"
gem "rspec", "~> 3.2.0"
我的问题是: 似乎终端之所以给出响应是因为我不应该更改任何东西在 ruby 上,而我需要在 atom 中bundle install?有人能告诉我如何使用 atom 或在 atom 中运行任何东西吗?

35
只需使用以下命令 sudo chown -R $USER /Library/Ruby/Gems/ - Faiz Fareed
设置全局 Ruby 版本就像这样 rbenv global 3.1.2,然后它就能工作了。 - Sangam
38个回答

0

我在这个问题上搞了几天,最后终于解决了,多亏了以下的灵感:

  1. BlackRainbow - 设置 Jenkins 的 $PATH 变量
  2. Moncef Belyamani - 为什么你永远不应该使用 sudo 安装 Ruby

我具体做了什么:

  1. 使用 rbenv 管理我的 Ruby 环境
  2. 打开终端并执行 echo $PATH
  3. 复制结果并粘贴到 Jenkinsfile 中
  4. 重新尝试构建你的流水线
  5. 就是这样,在我的环境中运行良好

附件:

步骤1-2 配置Ruby并获取路径环境 -
第2-3步配置Jenkinsfile -
第四步:构建流水线 -

0
解决了我的问题的方法是: 将以下内容添加到你的 ~/.bash_profile 或 ~/.zshrc 文件中。
eval "$(rbenv init -)"

然后正确选择了本地目录的Ruby版本,而不是选择系统的Ruby版本。我成功安装了bundler。

0

在尝试了之前的方法后,这个方法在Big Sur上对我有效:

sudo gem install -n /usr/local/bin cocoapods

1
这在我的 macOS 11.6 上起作用。谢谢 - Scott L

-1

您需要安装rbenv并在rbenv下维护ruby版本。

  1. brew install rbenv
  2. rbenv init
  3. eval "$(rbenv init -)"添加到~/.bash_profile文件中
  4. rbenv install {stable_version_#},您可以使用rbenv install -L获取版本号
  5. rbenv global {your_preferred_version_#}命令用于切换ruby版本
  6. rbenv shell {your_preferred_version_#}
  7. gem install {whatever you want gems}

更多详细信息请参见https://github.com/rbenv/rbenv


-1

我正在使用 Mojave 和 rbenv,这个解决方案对我有效:

$ vi ~/.bash_profile

将此行添加到文件中:
if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi

-2

这个方法在我的 Mac 上有效

sudo chown -R $(whoami) $(brew --prefix)/*


-2

对我来说,只需执行sudo gem uninstall cocoapods即可解决问题。


-4

抱歉给你点了踩 - 那是一个意外的点击。 - Shaun

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接