Как установить правильную версию Ruby в среде gem
Примечание: этот вопрос относится к тому, как заставить упаковщик использовать версию Ruby, установленную chruby и.ruby-version?,
С помощью chruby
У меня Ruby 1.8.7 установлен на macOS:
$ 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, чтобы использовать версию Ruby, которая chruby
установил?
2 ответа
Моим пропущенным шагом была установка 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/
Если вы используете диспетчер версий Ruby, например (chruby)[https://github.com/postmodern/chruby], и у вас включено автоматическое переключение. Проверьте файл версии .ruby и, если он не существует, добавьте его с нужным номером версии, например
echo "2.7.8" > .ruby-version
Тогда проверьте свойgem env
снова.