下面是我需要做的。

要运行规范,需要安装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上的任何东西,我需要捆绑安装在原子?谁能告诉我如何使用原子或者在原子中运行任何东西?


当前回答

正如@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

全部完成!

其他回答

更新:

我现在有了一个付费脚本,它可以用一个命令为您设置一个合适的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

如果你已经单独安装了ruby,并且使用rbenv/rvm安装了ruby,那么你的指针可能指向不同的版本。

try

gem env home

and

ruby -v

两者应该指向相同的版本。检查您是否使用rbenv/rvm安装了ruby,如果是,请删除您单独安装的ruby版本。

为了让gem工作,您必须调用rbenv,

rbenv shell <ruby version> 

and

rbenv global <ruby version>

我不确定RVM是如何工作的。 如果有用请告诉我。

通过将此传递到您的终端来安装自制程序 /bin/bash -c $(curl - ssl https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 使用brew安装cocoapods 酿造安装椰荚

为了解决这个问题,我跑了

brew reinstall ruby

是谁向我展示了这条信息

= = >警告 = = > ruby 默认情况下,gem安装的二进制文件将被放置到: / opt /组装/ lib / ruby /珠宝/ 3.1.0 / bin 您可能希望将此添加到PATH中。 Ruby是只有酒桶的,这意味着它没有符号链接到/opt/homebrew, 因为macOS已经提供了这个软件,并且正在安装另一个版本 并行会引起各种各样的麻烦。 如果你需要在PATH中先有ruby,运行: echo 'export PATH="/opt/homebrew/opt/ruby/bin:$PATH"' >> ~/.profile . PATH

所以我把这两行加到~/中。bashrc文件(

export PATH="/opt/homebrew/opt/ruby/bin:$PATH"
export PATH="/opt/homebrew/lib/ruby/gems/3.1.0/bin:$PATH"

然后我打开了一个新的终端。应用程序窗口和运行我的gem安装命令再次工作。

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

在我的例子中,这个问题与ruby访问有关,ruby路径在我的系统中是如何混乱的。

下面的步骤帮助我解决了这个问题

打开终端 使用自制程序安装ruby

安装ruby

[用于重新安装]brew重装ruby

使用下面的命令检查ruby的路径 这红宝石 它应该安装在下面的路径 /usr/bin/ruby 将ruby路径更改为用户路径

检查您的系统使用了哪个shell

echo $0

-zsh

对于zshrc

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

在bash

echo 'export PATH="/usr/local/opt/ruby/bin:$PATH"' >>~/~/.bashrc . bin:$PATH

退出并重新启动终端 用步骤5改变路径后 再次检查ruby的路径(执行步骤3 -请确保路径如下所示)

/usr/local/opt/ruby/bin/ruby

[如果您不退出并启动终端,将显示步骤4路径]

这一步可能并不适用于所有人,如果你安装了正确的Cocoapods版本,可以跳过第10和11步

检查安装的pod的版本

豆荚,版本

使用下面的命令卸载特定版本的Cocoapods

如果安装的版本是1.11.0

卸载cocoapods 1.11.0

安装特定版本的Cocoapods 安装cocoapods 1.11.0 将路径更改为Project目录cd {Project目录的路径} 在项目目录中安装捆绑程序

包安装

执行pod安装

正在安装