升级rubygems后rvm和rubygems问题

时间:2017-07-04 13:42:02

标签: ruby rubygems rvm

我使用以下命令更新了ruby gems:

gem update --system

现在,在运行bundle install或任何其他gem命令(例如gem -v

)时出现以下错误
/Users/darrenburgess/.rvm/rubies/ruby-2.0.0-p648/lib/ruby/site_ruby/2.0.0/rubygems/specification.rb:17:in `require': cannot load such file -- stringio (LoadError)

我可以使用rvm use system切换到系统ruby,然后gem命令似乎可以正常工作,但即使rvm use 2.0.0输出rvm list,我也会遇到同样的错误1}}显示=* ruby-2.0.0-p648 [ x86_64 ]作为当前和默认值。请注意,我可以切换到其他已安装的ruby版本,例如2.4.12.1.2

使用系统ruby时,gem的版本为2.0.14.1

安装的RVM版本为1.29.2(最新版本)。

which -a ruby的输出     /Users/darrenburgess/.rvm/rubies/ruby-2.0.0-p648/bin/ruby     在/ usr / bin中/红宝石     /Users/darrenburgess/.rbenv/shims/ruby

我检查过的其他类似问题,以确保RVM目录在我的$ PATH变量中是第一个。这条路径排在第一位:

/Users/darrenburgess/.rvm/gems/ruby-2.0.0-p648/bin

不幸的是,我在这里深入knows enough to be dangerous领域。我相信可能发生的事情是我在已安装的ruby / ruby​​gems / rvm版本之间引入了不兼容性。

此时我需要帮助探索不同的途径。谢谢。

更新: 我根据rvm list

安装了3个版本的Ruby 2.0.0
ruby-2.0.0-p481 [ x86_64 ]
=* ruby-2.0.0-p643 [ x86_64 ]
ruby-2.0.0-p648 [ x86_64 ]

我只是切换到使用p643并修复了问题,因为我没有使用已删除的ruby版本== ruby-2.0.0-p648

所以我想在这一点上我已回避了这个问题,而现在的问题就是ruby-2.0.0-p648出了什么问题,如何解决?

更多信息: ruby-2.0.0-p643正在使用gem版本2.4.6 ruby-2.0.0-p481正在使用gem版本2.2.2 目前最新版本的rubygems是2.6.12

所以我怀疑我将rubygems升级到与ruby 2.0.0不兼容的版本。

1 个答案:

答案 0 :(得分:0)

我确实设法解决了这个问题,但我仍然不确定为什么升级rubygems会导致这些问题。

修复是:

rvm remove ruby-2.0.0-p648
rvm install ruby-2.0.0-p648
gem install bundler
bundle install

因此,删除ruby版本似乎删除了所有已安装的gem,也许还删除了我安装的不兼容版本的rubygems。重新安装ruby 2.0.0p648解决了这个问题。

相关问题