下面是我需要做的。

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


通常建议使用rbenv或rvm之类的版本管理器。否则,安装的Gems将作为根用户供其他用户使用。

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


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

brew install ruby
export GEM_HOME="$HOME/.gem"
gem install rails

您可能希望添加export GEM_HOME="$HOME/ "。“宝石”送给你~/。Bash_profile或.zshrc(如果使用ZSH)

注意:RubyGems保留旧版本的宝石,所以在更新后可以自由地做一些清理工作:

gem cleanup

更新:

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

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

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

sudo gem update

Mac解决方案

安装/更新最新ruby版本的RVM \curl -sSL https://get.rvm.io | bash -s stable 安装打包机 Gem安装捆绑器


这两个命令之后(sudo) gem安装....开始工作


运行这个

$ rbenv init
# Load rbenv automatically by appending
# the following to ~/.zshrc:

eval "$(rbenv init -)"

按照说明,(在我的例子中,添加到~/.zshrc);)


同样重要的是:更改只有在重新启动控制台时才生效。两个选项

输入source <modified file> 关上再打开


我使用参数——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.


如果你已经单独安装了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是如何工作的。 如果有用请告诉我。


这在Mac上很管用

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


我使用Mojave与rbenv,这个解决方案适用于我:

$ vi ~/.bash_profile

将这一行添加到文件中:

if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi

简单的做 Sudo宝石卸载cocoapods为我工作。


应该使用不同的ruby安装。为此我使用rbenv。

# install your version of ruby
$ rbenv install 2.0.0-p247

# modify .ruby_version on current directory
$ rbenv local 2.0.0-p247

# proceed installing gems
$ gem install bundler

免责声明:我不喜欢红宝石。这对我来说很有效,如果你是一个ruby专家,在这个答案中看到了一些变化,请继续前进或评论!


博士TL;

在一些情况下,我通过关闭终端会话并在重新尝试失败的命令之前打开一个新的会话来解决这类错误。

长解释

在一些SOs(如MacOS)中,已经预先安装了ruby的系统级版本。如果您正在使用版本管理器,例如rbenv或asdf,它们通过处理当前会话的环境来工作,以便相关命令指向版本管理器安装的二进制文件。

When installing a new binary, the version manager installs it in a special location, usually somewhere under the user's home directory. It then configures everything in your PATH so that you get the freshly installed binaries when you issue a command, instead of the ones that came with your system. However, if you don't restart the session (there are other ways of getting your environment updated, but that's the easiest one) you don't get the new configuration and you will be using the original installation.


mac解决方案。执行命令

sudo gem update    

然后按提示输入你的Mac密码


试试这个:

sudo gem install cocoapods --user-install

为我工作


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

全部完成!


尝试1到2个

1 - $ gem install cocoapods
2 - $ sudo gem install cocoapods

如果它不工作,然后导出GEM_HOME:

export GEM_HOME="$HOME/.gem"

再试一次:

gem install cocoapods

记住,官方医生说你可以使用sudo (https://guides.cocoapods.org/using/getting-started.html#getting-started)。


在尝试了之前的方法后,我在《Big Sur》中发现了这种方法:

sudo gem install -n /usr/local/bin cocoapods

只需导出GEM_HOME:

export GEM_HOME="$HOME/.gem"

然后试试:

gem install cocoapods

您需要安装rbenv并在rbenv下维护ruby版本。

编译安装rbenv rbenv init 将eval "$(rbenv init -)"追加到~/.bash_profile rbenv install {stable_version_#}你可以使用rbenv install -L获取版本号 Rbenv global {your_preferred_version_#}命令用于切换到ruby版本 Rbenv shell {your_preferred_version #} 宝石安装{任何你想要的宝石}

详情https://github.com/rbenv/rbenv


我正在使用下面的命令来安装fastlane,但没有工作

宝石安装快车道-NV

所以使用sudo安装宝石对我来说很有用,就像

sudo gem install fastlane -NV


通过将此传递到您的终端来安装自制程序 /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安装命令再次工作。


我试了一下,效果很好 导出路径= / opt /组装/ opt / ruby / bin: / opt /组装/ lib / ruby /珠宝/ 3.0.0 / bin:美元的道路 出口LDFLAGS = " - l / opt /组装/ opt / ruby / lib” 出口CPPFLAGS = " - i / opt /组装/ opt / ruby /包括” Gem安装ffi


有同样的错误,因为我在安装ruby后忘记运行以下程序:

~ /来源。ZSHRC -或其他~/…Rc文件,具体取决于您的终端


Rbenv global 2.6.3帮助我解决了这个问题。


我使用下面的命令删除了这些目录

sudo rm -rf \
  /Library/Ruby/Gems/2.6.0/{build_info,cache,doc,extensions,gems} \
  /Library/Ruby/Gems/2.6.0/specifications/*.gemspec \
  /Library/Ruby/Site

然后安装可可豆荚使用sudo宝石安装cocoapods 这对我很有效。谢谢


在用rbenv安装ruby之后,你还需要设置全局ruby。为此,你可以这样做,rbenv全球3.2.1,然后安装绑定器与gem安装绑定器。它会起作用的。


在M1 MacBook Air上测试(假设安装了Homebrew)

下面是上面的答案,我们可以运行:

brew install chruby ruby-install

安装最新的稳定ruby:

ruby-install ruby

然后运行以下命令获取版本号:

chruby

在你的~/。zshrc中:

export PATH=/opt/homebrew/bin:$PATH
source /opt/homebrew/opt/chruby/share/chruby/chruby.sh
source /opt/homebrew/opt/chruby/share/chruby/auto.sh
chruby 3.1.2

“3.1.2”是运行chruby时得到的输出。一定要在最后加上这一行。

每次安装新gem时,请记住重新启动终端。


如果您不是默认的Ruby开发人员,那么所有这些答案对您来说都是陌生的。

将所有这些与nodejs中的nvm关联起来

读一下这个简短的信息,然后感谢我 https://daqo.medium.com/using-chruby-as-the-default-ruby-version-manager-c11346e3cc


安装rbenv后,我也有这个问题,在我的.bashrc中添加这一行:

$(rbenv init -)

解决了我的问题。


对于最新的操作系统版本

首先运行sudo xcode-select——switch / Sudo gem install cocoapods—user-install

这对我很有用


适用于Mac OS 12及以上版本,也适用于Mac OS 13 Xcode 14及以上版本

首先你打电话

出口GEM_HOME = " $ HOME / .gem” 在那之后 Gem安装cocoapods

家它帮助你☺️


您没有/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安装

正在安装