如何在gem环境中设置正确的Ruby版本

注意:这个问题涉及如何让bundler使用chruby和.ruby-version设置的Ruby版本? 。

使用chruby我在macOS上安装了Ruby 1.8.7:

 $ ruby -v ruby 1.8.7 (2013-06-27 patchlevel 374) [i686-darwin17.4.0] 

另外,我使用gem update --system 1.8.30安装特定版本的RubyGems,我希望它是兼容的。 这似乎安装正确:

 $ gem --version 1.8.30 

但是,我的RubyGems环境显示了不正确的Ruby版本(2.5.0):

 $ gem env RubyGems Environment: - RUBYGEMS VERSION: 1.8.30 - RUBY VERSION: 2.5.0 (2017-12-25 patchlevel 0) [x86_64-darwin17] - INSTALLATION DIRECTORY: /Users/keithpitty/.gem/ruby/1.8.7 - RUBY EXECUTABLE: /usr/local/opt/ruby/bin/ruby - EXECUTABLE DIRECTORY: /Users/keithpitty/.gem/ruby/1.8.7/bin - RUBYGEMS PLATFORMS: - ruby - x86_64-darwin-17 - GEM PATHS: - /Users/keithpitty/.gem/ruby/1.8.7 - GEM CONFIGURATION: - :update_sources => true - :verbose => true - :benchmark => false - :backtrace => false - :bulk_threshold => 1000 - REMOTE SOURCES: - http://rubygems.org/ 

如何修复RubyGems环境以使用chruby设置的Ruby版本?

我缺少的一步是从源代码安装RubyGems 1.6.2。 根据Dan Cheail的其他建议,我做了以下工作:

 curl -O https://rubygems.org/rubygems/rubygems-1.6.2.tgz 

(然后解压缩)

 cd rubygems-1.6.2 chruby ruby-1.8.7-p374 ruby setup.rb gem update --system 1.8.25 

然后修复了我的RubyGems环境:

 $ gem env RubyGems Environment: - RUBYGEMS VERSION: 1.8.25 - RUBY VERSION: 1.8.7 (2013-06-27 patchlevel 374) [i686-darwin17.4.0] - INSTALLATION DIRECTORY: /Users/keithpitty/.gem/ruby/1.8.7 - RUBY EXECUTABLE: /Users/keithpitty/.rubies/ruby-1.8.7-p374/bin/ruby - EXECUTABLE DIRECTORY: /Users/keithpitty/.gem/ruby/1.8.7/bin - RUBYGEMS PLATFORMS: - ruby - x86-darwin-17 - GEM PATHS: - /Users/keithpitty/.gem/ruby/1.8.7 - /Users/keithpitty/.rubies/ruby-1.8.7-p374/lib/ruby/gems/1.8 - GEM CONFIGURATION: - :update_sources => true - :verbose => true - :benchmark => false - :backtrace => false - :bulk_threshold => 1000 - REMOTE SOURCES: - http://rubygems.org/