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



总结我的问题

  • 关于我的目标的详细信息:
    我想安装一个旧的(稳定)版本的Rails;特别是5.2.5.

  • 描述预期和实际结果:
    我希望我的Mac运行Big Sur v11.3.1 (apple m1)可以成功安装Rails。

实际结果(大概)是一个基于权限/所有权的错误:

$ 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上还是会出现这个错误。

描述我的尝试:

这里有两个解决方案-没有帮助

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

我读过这个问题,但它是旧的

我已经开始探索我的路径:

/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更新了宝石,我已经摆脱了for i in宝石列表中看似多余的宝石——没有版本的; do gem uninstall -aIx $i; done

很明显,我已经无计可施了。

我的最佳猜测

看着我的$PATH,它似乎超级"sus"…看起来有一些冗余……但我不确定如何解决它,或者如果这是正确的地方去看。

在我的问题中,我省略了大多数关于我的系统和环境的细节,但这里有一个汇总:

  • MacOS BigSur 11.3.1(可能与Apple的SIP有关?)smh
  • zsh
  • 家酿
  • rbenv
  • ruby 2.7.2

毫不含糊地陈述我的问题

如何排除此错误"权限被拒绝@ rb_sysopen"通过仔细检查我的$PATH?这是最可能的罪魁祸首吗?

我需要采取哪些步骤才能完全"拥有核武器"?

PS -全面披露…是的,我在一些安装铁轨的例子中使用了sudo…尽管我在安装后很快就卸载了这些版本。我为我的不负责任道歉。我没有为苹果的SIP做好准备,几个月前就恐慌了....而且,ZSH对我来说也是一个改变。

看起来通过rbenv安装ruby是通过sudo完成的,这将创建具有root权限的gem结构。

因此,当您从普通用户执行gem install rails时,您将没有权限写入gems目录,从而引发permission denied错误。

可以执行以下命令确认权限:

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

尝试用你自己的用户重新安装你的ruby(不需要sudo),安装rails或其他gems应该没问题。

最新更新