尝试安装早期版本 Rails 时的故障排除 "Permission denied @ rb_sysopen"

Troubleshooting "Permission denied @ rb_sysopen" when attempting to install an earlier version of Rails

总结我的问题

实际结果(大概)是一个基于 permission/ownership 的错误:

$ 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 仍然出现此错误-电脑。

描述我的尝试:

Both solutions here - 没有帮助

i've read this question - 没有帮助

I've read this question, but it's old

我已经开始探索我的 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 update 更新了 gem,我已经摆脱了看似多余的 gem使用 for i in gem 列表 --no-versions; do gem uninstall -aIx $i; done.

显然,我已经无计可施了...

我的最佳猜测

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

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

毫不含糊地陈述我的问题

如何通过仔细检查我的 $PATH 来解决此错误“Permission denied @ rb_sysopen”?那是最有可能的罪魁祸首吗?

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

PS - 完全公开...是的,我在某些安装 rails 的实例中使用了 sudo...尽管我在安装后不久就迅速卸载了这些版本。对于不负责任,我深表歉意。我没有为 Apple SIP 做好准备,几个月前就惊慌失措了……另外,ZSH 对我来说也是一个改变。

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

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

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

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

尝试使用您自己的用户(不使用 sudo)重新安装 ruby,安装 rails 或其他 gem 应该没问题。