我的“ 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
打开 /usr/local/lib/site_ruby/2.3.0/rubygems/stub_specification.rb:114:indata' from /usr/local/lib/site_ruby/2.3.0/rubygems/stub_specification.rb:204:in
有效吗?从 /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' /usr/local/lib/site_ruby/2.3.0/rubygems/specification.rb:798:inblock in map_stubs' from /usr/local/lib/site_ruby/2.3.0/rubygems/specification.rb:795:in
each' 来自/usr/local/lib/site_ruby/2.3.0/rubygems/specification.rb:795:inflat_map' from /usr/local/lib/site_ruby/2.3.0/rubygems/specification.rb:795:in
map_stubs'来自 /usr/local/lib/site_ruby/2.3.0/rubygems/specification.rb:788:ininstalled_stubs' from /usr/local/lib/site_ruby/2.3.0/rubygems/specification.rb:826:in
个存根来自 /usr/local/lib/site_ruby/2.3.0/rubygems.rb:546:in /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'find_latest_files' from /usr/local/lib/site_ruby/2.3.0/rubygems.rb:1111:in
load_plugins' 来自/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
要求' /usr/local/lib/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:54:inrequire' from /usr/bin/gem:9:in
'
但是,如果我执行“ sudo gem”,命令运行正常。
更大的问题是我无法使用“捆绑包”安装新的宝石(例如fastlane)。请注意,我正在使用“捆绑包更新”通过Gemfile安装gem。并且与上面发布的完全相同的堆栈跟踪失败。
如何解决此问题?谢谢!
答案 0 :(得分:1)
在没有sudo的情况下运行时会出现此错误,因为您在计算机上使用的是某些人所说的“系统”红宝石。这是macOS随附的默认红宝石。如果您运行which ruby
,则很有可能会指向/usr/bin/ruby
(如果尚未安装rvm
,rbenv
或其他ruby版本管理器。
默认情况下,系统红宝石(包括系统gem
和bundler
指令)指向需要安装sudo
的文件位置。
我建议您不要运行sudo来安装gem;而是安装诸如rvm(最受欢迎),rbenv(也是最受欢迎的选择)或asdf(我首选的版本管理器之类的ruby版本管理器,因为它不仅管理ruby,如果需要的话)
按照说明安装ruby版本管理器后,您应该能够安装较新版本的ruby(系统ruby为2.3.7,最新版本为2.6.0)。版本管理器还将为您的gem
和bundle
命令设置合理的路径,指向您具有写特权而无需使用sudo
强烈建议使用ruby版本管理器,因为它不会干扰任何可能依赖于系统ruby版本的系统依赖关系,并且版本管理器允许您安装多个ruby版本并在不同项目之间切换。 / p>