gpt4 book ai didi

Ruby "gem"命令失败,权限被拒绝@rb_sysopen

转载 作者:行者123 更新时间:2023-12-02 17:01:38 24 4
gpt4 key购买 nike

我的“gem”命令似乎有什么问题。这是我在运行“gem”时得到的结果

/usr/local/lib/site_ruby/2.3.0/rubygems/stub_specification.rb:114:in initialize': Permission denied @ rb_sysopen -
/var/lib/gems/2.3.0/specifications/unicode-display_width-1.4.1.gemspec
(Errno::EACCES) from
/usr/local/lib/site_ruby/2.3.0/rubygems/stub_specification.rb:114:in
open' from /usr/local/lib/site_ruby/2.3.0/rubygems/stub_specification.rb:114:in data' from
/usr/local/lib/site_ruby/2.3.0/rubygems/stub_specification.rb:204:in
valid?' from /usr/local/lib/site_ruby/2.3.0/rubygems/specification.rb:774:in select' from
/usr/local/lib/site_ruby/2.3.0/rubygems/specification.rb:774:in
gemspec_stubs_in' from /usr/local/lib/site_ruby/2.3.0/rubygems/specification.rb:798:in block
in map_stubs' from
/usr/local/lib/site_ruby/2.3.0/rubygems/specification.rb:795:in
each' from /usr/local/lib/site_ruby/2.3.0/rubygems/specification.rb:795:in flat_map' from
/usr/local/lib/site_ruby/2.3.0/rubygems/specification.rb:795:in
map_stubs' from /usr/local/lib/site_ruby/2.3.0/rubygems/specification.rb:788:in installed_stubs' from
/usr/local/lib/site_ruby/2.3.0/rubygems/specification.rb:826:in
stubs' from /usr/local/lib/site_ruby/2.3.0/rubygems/specification.rb:747:in _all'
from /usr/local/lib/site_ruby/2.3.0/rubygems/specification.rb:1131:in
latest_specs' from /usr/local/lib/site_ruby/2.3.0/rubygems.rb:546:in find_latest_files' from
/usr/local/lib/site_ruby/2.3.0/rubygems.rb:1111:in
load_plugins' from /usr/local/lib/site_ruby/2.3.0/rubygems/gem_runner.rb:86:in <top (required)>' from
/usr/local/lib/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:54:in
require' from /usr/local/lib/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:54:in require' from /usr/bin/gem:9:in'

但是,如果我执行“sudo gem”,命令运行正常。

更大的问题是我无法使用“bundle”来安装新的 gems(例如 faSTLane)。请注意,我正在使用“bundle update”通过 Gemfile 安装 gem。并且失败并返回与上面发布的完全相同的堆栈跟踪

我该如何解决这个问题?谢谢!

最佳答案

当你在没有 sudo 的情况下运行时,你会得到这个错误,因为你在你的计算机上使用了一些人所说的“系统”ruby;它是 macOS 附带的默认 ruby​​。如果你运行 which ruby​​ 它很可能指向 /usr/bin/ruby (如果你还没有安装 rvm rbenv,或另一个 ruby​​ 版本管理器。

默认情况下,系统 ruby​​(包括系统 gembundler 命令)指向一个需要 sudo 安装的文件位置.

我建议你不要运行 sudo 来安装 gems;而是安装一个 ruby​​ 版本管理器,例如 rvm (最受欢迎),rbenv (也是一个流行的选择),或 asdf (我首选的版本管理器,因为它管理的不仅仅是 ruby​​,如果你愿意的话)

按照说明安装 ruby​​ 版本管理器后,您应该能够安装更新版本的 ruby​​(系统 ruby​​ 是 2.3.7,最新版本是 2.6.0)。版本管理器还将为您的 gembundle 命令设置合理的路径,指向您在不使用 sudo

强烈推荐 ruby​​ 版本管理器,因为它不会干扰任何可能依赖系统 ruby​​ 版本的系统依赖项,并且版本管理器允许您安装多个 ruby​​ 版本并在不同项目之间切换。

关于Ruby "gem"命令失败,权限被拒绝@rb_sysopen,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53918146/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com