我的"宝石"命令似乎有什么东西坏了。这是我在运行"宝石"时得到的
/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
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?/usr/local/lib/site_ruby/2.3.0/rubygems/specification. rb:七百七十四:在/usr/local/lib/site_ruby/2.3.0/rubygems/specification的select' from /usr/local/lib/site_ruby/2.3.0/rubygems/specification.rb:774:in
gemspec_stubs_in '中。rb:798:在block in map_stubs' from /usr/local/lib/site_ruby/2.3.0/rubygems/specification.rb:795:in
中,每个都来自/usr/local/lib/site_ruby/2.3.0/rubygems/specification。rb:795:在/usr/local/lib/site_ruby/2.3.0/rubygems/specification中的flat_map' from /usr/local/lib/site_ruby/2.3.0/rubygems/specification.rb:795:in
map_stubs中。rb:788:在/usr/local/lib/site_ruby/2.3.0/rubygems/specification的installed_stubs' from /usr/local/lib/site_ruby/2.3.0/rubygems/specification.rb:826:in
stubs中。rb:第七百四十七章:在/usr/local/lib/site_ruby/2.3.0/rubygems的_all' from /usr/local/lib/site_ruby/2.3.0/rubygems/specification.rb:1131:in
latest_specs'中。rb:第五百四十六章:在/usr/local/lib/site_ruby/2.3.0/rubygems/gem_runner的find_latest_files' from /usr/local/lib/site_ruby/2.3.0/rubygems.rb:1111:in
load_plugins中。rb:八十六:/usr/local/lib/site_ruby/2.3.0/rubygems/core_ext/kernel_require. rb:五十四:在require' from /usr/bin/gem:9:in
'中
但是,如果我执行"sudo gem"命令,该命令会运行得很好。
更大的问题是我不能使用"bundle"来安装新的gem(eidogg.,fastlane)。请注意,我使用"bundle update"通过Gemfile安装gem。而失败的堆栈跟踪与上面发布的完全相同。
如何解决此问题?谢谢你,谢谢
1条答案
按热度按时间cl25kdpy1#
当你在没有sudo的情况下运行时,你会得到这个错误,因为你在你的计算机上使用的是一些人所说的“系统”ruby;它是macOS自带的默认Ruby。如果你运行
which ruby
,它很可能指向/usr/bin/ruby
(如果你没有安装rvm
,rbenv
,或其他ruby版本管理器)。默认情况下,系统ruby(包括系统
gem
和bundler
命令)指向需要安装sudo
的文件位置。我建议你不要运行sudo来安装gems;相反,安装一个ruby版本管理器,比如rvm(最流行的),rbenv(也是一个流行的选择),或者asdf(我喜欢的版本管理器,因为它管理的不仅仅是ruby,如果你愿意的话)
一旦你按照说明安装了ruby版本管理器,你应该可以安装一个更新的ruby版本(系统ruby是2.3.7,最新的是2.6.0)。版本管理器还将为您的
gem
和bundle
命令设置合理的路径,指向您在不使用sudo
的情况下具有写入权限的路径ruby版本管理器被强烈推荐 * 用于本地开发 *,因为它不会干扰任何可能依赖于系统ruby版本的系统依赖项,并且版本管理器允许你安装多个ruby版本,并在不同的项目中在它们之间切换。