4

注意:这个问题与如何让捆绑程序使用 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 版本?

4

1 回答 1

3

我缺少的步骤是从源代码安装 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/
于 2018-02-02T07:25:43.293 回答