ruby-on-rails - 尝试安装早期版本的 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 的这个错误。
描述我尝试过的内容:
两种解决方案都在这里- 没有帮助
我读过这个问题- 没有帮助
我已经开始探索我的 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”......看起来有一些冗余......但我不确定如何解决它或者这是否是正确的地方。
在我的问题中,我已经放弃了关于我的系统和环境的大部分细节,但这里有一个汇总:
- MacOS BigSur 11.3.1(可能与 Apple 的SIP有关?) smh
- zsh
- 自制
- rbenv
- 红宝石 2.7.2
毫不含糊地陈述我的问题
如何通过仔细检查我的“权限被拒绝@rb_sysopen”来解决此错误$PATH
?这是最有可能的罪魁祸首吗?
我需要采取哪些步骤才能完全“核化”?
PS - 完全披露......是的,我sudo
在某些安装rails的实例中使用过......尽管我在安装后不久就快速卸载了这些版本。我为不负责任表示歉意。几个月前我还没有为 Apple SIP 做好准备并且感到恐慌……此外,ZSH 对我来说也是一个改变。
解决方案
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 就可以了。
推荐阅读
- adobe - 如何在 AEM Touch UI 对话框中引入具有默认值的附加字段?
- flutter - Flutter 使用过时的包不会让我运行我的应用程序
- jquery - salesforce 使用 jQuery ajax 方法获取令牌
- javascript - 完整日历不是函数 CDN
- r - 计算每个 data.table 行的出现次数
- selenium - 如何将 Azure App 服务连接到 Azure VM?
- java - 如何使方形FrameLayout边框的一侧可拖动以在Android中制作矩形?
- angular - NgRx 访问 State Store 上的数据
- html - 不同的项目变得活跃并被选中,而不是一个项目
- python - 如何从 Pandas DataFrame 中获取用户名