Riod-iOS错误:您没有写权限 "Gem::FilePermissionError"

5
我已下载了Riot-iOS并按照构建说明进行操作。
当我运行'$ bundle install'时,

跟踪最近的调用(第2个):来自/usr/bin/bundle:23:in <main>' 来自/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems.rb:302:in activate_bin_path' /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems.rb:283:in find_spec_for_exe':无法找到 'bundler' (2.0.2),该版本是您 /Users/premkumar/Downloads/riot-ios-develop/Gemfile.lock所需的。 (Gem :: GemNotFoundException)要更新到已安装的最新版本,请运行bundle update --bundler。要安装缺少的 版本,请运行gem install bundler:2.0.2`

在运行'$ bundle exec pod install'之后。

跟踪错误信息(最近的调用在最后): 2: from /usr/bin/bundle:23:in <main>' 1: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems.rb:302:in activate_bin_path' /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems.rb:283:in find_spec_for_exe': 无法找到 'bundler' (2.0.2),该版本要求在 /Users/premkumar/Downloads/riot-ios-develop/Gemfile.lock 中。 (Gem::GemNotFoundException) 要更新到系统上安装的最新版本,请运行bundle update --bundler。 要安装缺失的版本,请运行gem install bundler:2.0.2`

所以,我通过运行'$gem update --system'来更新一个 gem。

更新 rubygems-update 出错:执行 gem 时出错... (Gem::FilePermissionError) 您没有 /Library/Ruby/Gems/2.6.0 目录的写权限。

enter image description here

请帮助我。

2个回答

11

看起来您正在使用MacOS自带的系统Ruby。为了使其正常工作,您需要尝试使用sudo运行这些命令。您也可以尝试使用RVM (https://rvm.io/)安装Ruby,然后在不使用sudo的情况下运行相同的命令。

RVM使这变得非常容易。从终端中运行以下命令:

\curl -sSL https://get.rvm.io | bash -s stable --ruby

这个命令将安装RVM和最新的稳定Ruby版本,现在是2.6.3。


@KathiresanMurugan 请查看带有所需命令的更新答案。 - Zach Tuttle
我运行了那个curl命令。但是我收到了这个结果:https://i.stack.imgur.com/JlB3V.jpg - Kathiresan Murugan

0

我想强调一下@ZachTuttle所说的一点:你正在使用系统安装的Ruby(!!)(即与macOS预安装的那个版本) - 99.9%的情况下,你不应该这样做!

你可以通过错误信息中对macOS系统安装位置的引用来确定发生了这种情况:

/System/Library/Frameworks/Ruby.framework/Versions ...

如果您想解决问题,您几乎肯定需要得到ruby -v的输出。它应该是您自己安装的版本。有许多推荐的方式可以安装ruby。

如果您已经安装了非系统版本的ruby,则只需找出如何使rails/bundle/相关进程使用您安装的ruby版本,而不是系统安装版本即可。这将取决于您安装它的方式。

举个例子,我遇到了类似的错误消息,并且正好使用rbenv ruby软件包管理器,因此我必须使rbenv使用通过rbenv安装的ruby版本,而不是系统安装版本(为此,我运行rbenv versions显示已安装的版本,然后运行rbenv global 3.0.3切换到其中一个自安装版本)。根据您安装ruby的方式,您必须完全按照不同的步骤操作,但最终您几乎肯定要使rails/bundler使用您自己安装的ruby,而不是当前尝试使用的系统安装版本。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接