尝试安装早期版本 Rails 时的故障排除 "Permission denied @ rb_sysopen"
Troubleshooting "Permission denied @ rb_sysopen" when attempting to install an earlier version of Rails
总结我的问题
我的目标详情:
我想安装 Rails 的旧(稳定)版本;具体来说 5.2.5
.
描述预期和实际结果:
我希望我的 Mac 运行ning Big Sur v11.3.1 (apple m1) 能够成功安装 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”...看起来有一些冗余...但我不确定如何解决它或者这是否是正确的查找位置。
在我的整个问题中,我已经放弃了关于我的系统和环境的大部分细节,但这里有一个汇总:
- MacOS BigSur 11.3.1(可能跟苹果的SIP有关?)smh
- zsh
- 自制软件
- rbenv
- ruby2.7.2
毫不含糊地陈述我的问题
如何通过仔细检查我的 $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 应该没问题。
总结我的问题
我的目标详情:
我想安装 Rails 的旧(稳定)版本;具体来说5.2.5
.描述预期和实际结果:
我希望我的 Mac 运行ning Big Sur v11.3.1 (apple m1) 能够成功安装 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”...看起来有一些冗余...但我不确定如何解决它或者这是否是正确的查找位置。
在我的整个问题中,我已经放弃了关于我的系统和环境的大部分细节,但这里有一个汇总:
- MacOS BigSur 11.3.1(可能跟苹果的SIP有关?)smh
- zsh
- 自制软件
- rbenv
- ruby2.7.2
毫不含糊地陈述我的问题
如何通过仔细检查我的 $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 应该没问题。