你没有在 /Library/Ruby/Gems/2.3.0 目录下写入的许可权限。(苹果电脑用户)

18 浏览
0 Comments

你没有在 /Library/Ruby/Gems/2.3.0 目录下写入的许可权限。(苹果电脑用户)

以下是我需要做的事情。

要运行这些规范,您需要安装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中运行任何内容吗?

admin 更改状态以发布 2023年5月23日
0
0 Comments

使用参数--user-install,运行以下命令对我有效:

gem install name_of_gem --user-install

编辑

有一个宝石我仍然无法安装(它需要Ruby开发工具包的Ruby.h头文件之类的东西),然后我尝试了不同的版本管理器,但不知何故它仍然没有像文档中所述那样工作,如何仅安装和切换(它只是没有切换版本)。然后我删除了所有已安装的版本管理器,并使用brew install ruby安装了最新版本,并设置了PATH变量(在从brew安装ruby之后将提到),这也有效。

0
0 Comments

更新:

您所说的 macOS 不允许更改随 Mac 安装的 Ruby 版本的任何内容是正确的。然而,通过安装不干扰 Apple 提供的 Ruby 的另一个版本,可以安装像bundler这样的宝石。

强烈反对使用sudo安装宝石或更改系统文件和目录的权限,即使您知道您在做什​​么别人也不建议。我们可以停止提供这个错误的建议吗?我写了一篇详细的文章,展示了为什么您不应该使用sudo来安装宝石

解决方案涉及两个主要步骤:

  1. 安装不会干扰 Mac 自带版本的另一版本的 Ruby。
  2. 更新您的 PATH ,使新的 Ruby 版本的位置在 PATH 中处于第一位。有些工具会自动为您完成此操作。如果您不熟悉 PATH和其工作方式,那么您应该了解其基础知识,您将了解为什么有时会出现“命令未找到"的错误以及如何解决它们。

有几种在 Mac 上安装 Ruby 的方法。我推荐的最佳方法是使用像Ruby on Mac这样的自动化脚本,会为您设置适当的 Ruby 环境。

主要原因是它可以节省每个人大量的时间。时间是我们最有限且宝贵的资源。每次都能自动化完成为什么要让人去手动操作呢?

另一个原因是它显著地减少了人为错误或由于不完整的指令而导致的错误的机会。

如果您想要手动操作,继续阅读。首先,您需要安装Homebrew,它会安装必需的命令行工具,并使安装其他必要工具变得容易。

然后,安装一个单独的Ruby版本的两种最简单的方法是:

如果您想轻松切换多个Ruby版本(建议)

选择以下四个选项之一:

brew install chruby ruby-install

如果您选择了chrubyruby-install,则可以像下面这样安装最新的Ruby:

ruby-install ruby

一旦您安装了所有内容并根据上述工具的说明配置了.zshrc.bash_profile文件后,请退出并重新启动Terminal,然后切换到您想要使用的Ruby版本。在chruby的情况下,可能会是这样:

chruby 3.1.3

是否需要配置.zshrc.bash_profile取决于您使用的shell类型

如果您确定只需要同时使用一个Ruby版本(除了macOS自带的版本)[不推荐使用]

即使您现在认为您不需要另一个版本,您最终会需要,而且您将无法轻松地切换。这会引起混乱和头疼,这就是为什么我不建议使用Homebrew安装和管理Ruby。

如果您选择忽略我的警告使用Homebrew安装Ruby,您将自己承担任何问题的责任。

  • 使用Homebrew安装Ruby:

brew install ruby

然后运行以下命令更新PATH

echo 'export PATH="/usr/local/opt/ruby/bin:/usr/local/lib/ruby/gems/3.1.0/bin:$PATH"' >> ~/.zshrc

上述命令中的3.1.0假定Homebrew安装的Ruby版本以3.1开头。如果安装了不同的版本,请用Ruby版本的前两个数字替换3.1

如果您使用的是M1/M2 Mac,请将/usr/local替换为/opt/homebrew

然后“刷新”您的shell以使这些更改生效:

source ~/.zshrc

或者您可以打开一个新的终端选项卡,或者退出并重新启动终端。

如果您使用的是Bash,请用.bash_profile替换.zshrc 。如果不确定,请阅读我的指南查找您正在使用哪个shell

要检查您现在是否使用非系统版本的Ruby,您可以运行以下命令:

which ruby

它不应该是/usr/bin/ruby

ruby -v

它应该是3.1.3或更高版本。

一旦安装了这个新的Ruby版本,您现在可以安装bundler(或任何其他gem):

gem install bundler

0