你没有在 /Library/Ruby/Gems/2.3.0 目录下写入的许可权限。(苹果电脑用户)
你没有在 /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中运行任何内容吗?
更新:
-
现在我有一个 付费脚本,使用一个命令会为您设置一个适当的 Ruby 环境!
-
我还会定期更新我免费逐步指南,教您如何在 Mac 上安装 Ruby(更新频率更高,比我更新此答案的频率更高)。
您所说的 macOS 不允许更改随 Mac 安装的 Ruby 版本的任何内容是正确的。然而,通过安装不干扰 Apple 提供的 Ruby 的另一个版本,可以安装像bundler
这样的宝石。
强烈反对使用sudo
安装宝石或更改系统文件和目录的权限,即使您知道您在做什么别人也不建议。我们可以停止提供这个错误的建议吗?我写了一篇详细的文章,展示了为什么您不应该使用sudo来安装宝石。
解决方案涉及两个主要步骤:
- 安装不会干扰 Mac 自带版本的另一版本的 Ruby。
- 更新您的
PATH
,使新的 Ruby 版本的位置在PATH
中处于第一位。有些工具会自动为您完成此操作。如果您不熟悉PATH
和其工作方式,那么您应该了解其基础知识,您将了解为什么有时会出现“命令未找到"的错误以及如何解决它们。
有几种在 Mac 上安装 Ruby 的方法。我推荐的最佳方法是使用像Ruby on Mac这样的自动化脚本,会为您设置适当的 Ruby 环境。
主要原因是它可以节省每个人大量的时间。时间是我们最有限且宝贵的资源。每次都能自动化完成为什么要让人去手动操作呢?
另一个原因是它显著地减少了人为错误或由于不完整的指令而导致的错误的机会。
如果您想要手动操作,继续阅读。首先,您需要安装Homebrew,它会安装必需的命令行工具,并使安装其他必要工具变得容易。
然后,安装一个单独的Ruby版本的两种最简单的方法是:
如果您想轻松切换多个Ruby版本(建议)
选择以下四个选项之一:
- chruby和ruby-install - 我个人的推荐和Ruby on Mac脚本自动安装的那些。这些可以通过Homebrew安装:
brew install chruby ruby-install
如果您选择了chruby
和ruby-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