首页 > 解决方案 > 尝试安装早期版本的 Rails 时排除“Permission denied @ rb_sysopen”故障

问题描述

总结我的问题

实际结果(可能)是基于权限/所有权的错误:

$ gem install rails -v 5.2.5
ERROR:  While executing gem ... (Errno::EACCES)
    Permission denied @ rb_sysopen - /Users/ayylmao/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/concurrent-ruby-1.1.9/CHANGELOG.md

显然,我认为这与...有关concurrent-ruby-1.1.9……尽管在我努力在这台新计算机上安装 rails 的过程中,我继续遇到其他 gem 的这个错误。

描述我尝试过的内容:

两种解决方案都在这里- 没有帮助

我读过这个问题- 没有帮助

我读过这个问题,但它很旧

我已经开始探索我的 PATH:

/Users/ayylmao/.rbenv/shims:/Users/ayylmao/.rbenv/shims:/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

并且我已经卸载了以前安装的 Rails(和 railties),并删除了 rbenv 并重新安装(通过对我来说通常的 Homebrew)

我已经跑brew doctor了,我用 更新了 gem ,我用gem list --no-versionsgem update摆脱了看似多余的 gem 。for i in ; do gem uninstall -aIx $i; done

显然,我在这里无能为力...

我的最佳猜测

看着我的$PATH它似乎超级“sus”......看起来有一些冗余......但我不确定如何解决它或者这是否是正确的地方。

在我的问题中,我已经放弃了关于我的系统和环境的大部分细节,但这里有一个汇总:

毫不含糊地陈述我的问题

如何通过仔细检查我的“权限被拒绝@rb_sysopen”来解决此错误$PATH?这是最有可能的罪魁祸首吗?

我需要采取哪些步骤才能完全“核化”?

PS - 完全披露......是的,我sudo在某些安装rails的实例中使用过......尽管我在安装后不久就快速卸载了这些版本。我为不负责任表示歉意。几个月前我还没有为 Apple SIP 做好准备并且感到恐慌……此外,ZSH 对我来说也是一个改变。

标签: ruby-on-railsrubyrubygemszsh

解决方案


ruby您的安装似乎rbenv是通过 sudo 完成的,它将创建具有 root 权限的 gem 结构。

因此,当您gem install rails从普通用户执行 a 时,您将无权写入 gems 目录,从而引发权限被拒绝错误。

您可以通过运行来确认权限:

ls -la /Users/ayylmao/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/

尝试使用您自己的用户(不使用 sudo)重新安装您的 ruby​​,安装 rails 或其他 gem 就可以了。


推荐阅读