下面是我需要做的。

要运行规范,需要安装RSpec。首先,在项目的根目录下运行gem install bundler。然后,运行bundle install。要运行单个spec文件,可以运行如下命令:要一次运行所有规格,请运行bundle exec rspec。

所以,我在终端中输入gem安装捆绑器,并得到错误:

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

这是在atom的项目文件中

source "https://rubygems.org"
gem "rspec", "~> 3.2.0"

我的问题是:

似乎终端给我的响应,因为我不应该改变ruby上的任何东西,我需要捆绑安装在原子?谁能告诉我如何使用原子或者在原子中运行任何东西?


当前回答

这在Mac上很管用

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

其他回答

我使用参数——user-install运行以下命令:

gem install name_of_gem --user-install

Edit

There was one gem I still could not install (it required the Ruby.h headers of the Ruby development kit or something), then I tried the different version managers, but somehow that still did not really work as it was stated in the documentations how to just install and switch (it did just not switch the versions). Then I removed all the installed version managers and installed afterwards with brew install ruby the latest version and did set the PATH variable, too. (It will be mentioned after the installation of ruby from brew), which worked.

请小心使用sudo !!!!!!只有当你知道你在做什么!!!!!!!!!!!!

在安装macOS Catalina后,我也遇到了同样的问题。我尝试下命令和它的工作。

sudo gem update

更新:

我现在有了一个付费脚本,它可以用一个命令为您设置一个合适的Ruby环境! 我还不断更新在Mac上安装Ruby的免费分步指南(比我更新这个答案的频率还高)。

你是对的,macOS不允许你修改Mac自带的Ruby版本。但是,你可以使用一个单独的Ruby版本来安装gems,比如bundler,这不会影响苹果提供的Ruby版本。

使用sudo来安装gems,或者修改系统文件和目录的权限是非常不鼓励的,即使你知道你在做什么。我们能不能别再提这些馊主意了?我写了一篇详细的文章,说明了为什么不应该使用sudo来安装gems。

解决方案包括两个主要步骤:

安装一个独立的Ruby版本,它不会影响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

rbenv -可以用Homebrew安装 数位视讯 asdf

如果你选择了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安装了从3.1开始的Ruby版本。如果安装了不同的版本,请将3.1替换为Ruby版本的前两位数字。

如果你在M1/M2的Mac上,用/opt/homebrew替换/usr/local

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

source ~/.zshrc

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

如果使用Bash,请将.zshrc替换为.bash_profile。如果您不确定,请阅读我的指南,了解您正在使用的外壳。

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

which ruby

它不应该是/usr/bin/ruby

ruby -v

它应该是3.1.3或更高版本。

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

gem install bundler

只需导出GEM_HOME:

export GEM_HOME="$HOME/.gem"

然后试试:

gem install cocoapods

正如@idleberg提到的,在Mac OS上,最好安装rbenv,以避免手动安装ruby时出现权限错误。

安装

$ brew update
$ brew install rbenv

在.bashrc文件中添加以下内容:

eval "$(rbenv init -)"

现在,我们可以查看可供安装的ruby版本列表

$ rbenv install -l

以安装2.3.8版本为例

$ rbenv install 2.3.8

现在我们可以全局地使用这个ruby版本

$ rbenv global 2.3.8

最后运行

$ rbenv rehash
$ which ruby
/Users/myuser/.rbenv/shims/ruby
$ ruby -v
ruby 2.3.7p456 (2018-03-28 revision 63024) [x86_64-darwin17]

大胆尝试吧

现在安装捆扎器

$ gem install bundler

全部完成!