总结我的问题
-
关于我的目标的详细信息:
我想安装一个旧的(稳定)版本的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应该没问题。