您没有/Library/Ruby/Gems/2.3.0目录的写权限。 (mac用户)

问题描述 投票:11回答:3

以下是我需要做的。

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

所以,我给终端键入了gem install bundler,并且你没有/Library/Ruby/Gems/2.3.0目录的写权限。

这是在原子*源“https://rubygems.org”gem“rspec”,“〜> 3.2.0”*的项目文件中

我的问题是:

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

非常感谢!

macos rubygems install bundler atom-editor
3个回答
37
投票

你是正确的,MacOS不会让你随Mac安装的Ruby版本改变任何东西。但是,可以使用不影响Apple提供的Ruby的单独版本安装像bundler这样的宝石。

使用sudo来安装gem,或强烈建议不要更改系统文件和目录的权限,即使你知道自己在做什么。我们可以停止提供这个不好的建议吗?

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

  1. 安装单独版本的Ruby,不会干扰Mac附带的版本。
  2. 更新你的PATH,以便新的Ruby版本的位置首先在PATH中。目录列表以及计算机查找它们以查找可执行程序的顺序称为PATH。如果在终端中键入echo $PATH,您将看到以冒号分隔的目录列表。

有几种方法可以在Mac上安装Ruby。我推荐的最佳方式,以及我希望在各种安装说明中更为普遍的方法是使用automated script为您设置适当的Ruby环境。这大大降低了由于不充分的指令而导致错误的可能性,这些指令使得用户手动执行大量操作并将其留给他们以找出所有必要的步骤。

您可以采取的另一条路线是花费额外的时间手动完成所有工作并希望获得最佳效果。首先,您需要安装Homebrew,这样可以轻松安装其他工具和macOS应用程序。

然后,安装单独版本的Ruby的4种最流行的方法是:

If you don't need more than one version of Ruby at the same time (besides the one that came with macOS)

  • 自制软件 - 安装完成后,用brew install ruby安装ruby,然后运行PATH更新你的echo 'export PATH="/usr/local/opt/ruby/bin:$PATH"' >> ~/.bash_profile,然后运行source ~/.bash_profile

If you would like the flexibility of easily switching between many Ruby versions

  • chrubyruby-install - 我的个人建议以及上述脚本自动安装的建议。这些可以与Homebrew一起安装。
  • rbenv - 可以与Homebrew一起安装
  • RVM

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

which ruby

它应该是/usr/bin/ruby以外的东西

ruby -v

它应该是2.3.7以外的东西。截至今天,2.6.1是最新的Ruby版本。

一旦安装了这个新版本的Ruby,您现在可以安装bundler:

gem install bundler

4
投票

通常建议使用像rbenvrvm这样的版本管理器。否则,已安装的Gems将作为root提供给其他用户。

如果你知道你在做什么,你可以使用sudo gem install


3
投票

如果您不想运行sudo,请使用自制软件安装ruby

brew install ruby
gem install rails

0
投票

安装macOS Catalina后我遇到了同样的问题。我曾尝试过以下命令及其工作。

sudo gem update

0
投票

Mac的解决方案

  1. 使用最新的ruby版本安装/更新qazxsw poi qazxsw poi
  2. 安装RVM \curl -sSL https://get.rvm.io | bash -s stable --rails

在这两个命令bundler开始工作之后

© www.soinside.com 2019 - 2024. All rights reserved.