irb загружает неправильный путь рубина и драгоценного камня, используя rbenv

Я начал использовать rbenv для управления версиями ruby ​​и обнаружил, что irb не загружает правильную версию ruby ​​и версию gem. Вот подробности.

irb Gem.path говорит:

`>> Gem.path  
 => ["/Users/Air/.gem/ruby/1.8", "/Library/Ruby/Gems/1.8", "/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8"]`

Теперь в irb, если я наберу: put $:

`>> puts $:  
/Library/Ruby/Site/1.8  
/Library/Ruby/Site/1.8/powerpc-darwin11.0  
/Library/Ruby/Site/1.8/universal-darwin11.0  
/Library/Ruby/Site  
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/vendor_ruby/1.8 /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/vendor_ruby/1.8/universal-darwin11.0  
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/vendor_ruby  
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8  
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/powerpc-darwin11.0  
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin11.0`

В командной строке набираю: gem env.

`RubyGems Environment:  
  - RUBYGEMS VERSION: 1.8.10  
  - RUBY VERSION: 1.9.2 (2011-07-09 patchlevel 290) [x86_64-darwin11.0.1]  
  - INSTALLATION DIRECTORY: /Users/Air/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1  
  - RUBY EXECUTABLE: /Users/Air/.rbenv/versions/1.9.2-p290/bin/ruby  
  - EXECUTABLE DIRECTORY: /Users/Air/.rbenv/versions/1.9.2-p290/bin  
  - RUBYGEMS PLATFORMS:  
    - ruby  
    - x86_64-darwin-11  
  - GEM PATHS:  
     - /Users/Air/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1  
     - /Users/Air/.gem/ruby/1.9.1  
  - GEM CONFIGURATION:  
     - :update_sources => true  
     - :verbose => true  
     - :benchmark => false   
     - :backtrace => false  
     - :bulk_threshold => 1000  
  - REMOTE SOURCES:  
     - http://rubygems.org/`  

Я вижу, что irb загружает неправильную версию Ruby и загружает неправильный путь к Gem. Может кто-нибудь поможет понять, как это исправить. Я использую rbenv для управления версиями Ruby, не знаю, как это влияет на ситуацию. Совет?


person alenm    schedule 03.12.2011    source источник
comment
Где / как вы установили текущую версию Ruby с помощью rbenv?   -  person Andrew Marshall    schedule 03.12.2011
comment
В инструкциях на сайте rbenv сказано, что нужно использовать rbenv global. В точных инструкциях указано global Set or show the global Ruby version. Если я запустил rbenv global в своей оболочке, будет написано 1.9.2-p290   -  person alenm    schedule 03.12.2011
comment
Вероятно, на вашем пути есть общесистемный irb (запустите which irb для подтверждения). Этот irb загрузит что-то вроде /usr/bin/ruby, что обойдёт rbenv. Я не знаком с rbenv, но я постоянно вижу здесь, на SO, проблемы того же типа. Переименуйте общесистемный irb во что-то вроде irb_old и убедитесь, что ваш каталог rbenv находится на вашем пути echo $PATH, и вы должны заставить его работать.   -  person Casper    schedule 03.12.2011
comment
ОК, я переименовал ребро в (irb_old). Когда я набираю echo $PATH, я получаю /Users/Air/.rbenv/shims:/Users/Air/.rbenv/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin ... а теперь, когда я печатаю irb, я получаю command not found Я не думаю, что это решение, но спасибо за предложение. И я перезапустил свою оболочку.   -  person alenm    schedule 03.12.2011
comment
Возможно ли, что Ruby 1.9.2 не установил irb, и поэтому он не работает? Как установить irb   -  person alenm    schedule 03.12.2011
comment
Вы можете попробовать irb1.9.1. Когда существует установленный Ruby 1.8, 1.9 не будет переопределять символические ссылки irb, gem, ruby и т. Д.   -  person Linuxios    schedule 03.12.2011
comment
Что which ruby говорит? Если он загружает рубин в ваш каталог rbenv, отредактируйте первую строку в вашем irb_old на #!/usr/bin/env ruby и переименуйте обратно в irb. А теперь попробуйте еще раз. Я не знаю, почему irb не был установлен должным образом ... но описанный выше обходной путь должен это исправить.   -  person Casper    schedule 03.12.2011
comment
ИДЕАЛЬНО! Я изменил его на #!/usr/bin/env ruby, теперь irb ищет правильную версию Ruby и путь к Gem. Огромное спасибо.   -  person alenm    schedule 03.12.2011


Ответы (2)


Убедитесь, что вы правильно задали свой путь и инициализировали rbenv в оболочке, которую вы используете.

Я добавил в свой .bash_profile следующие строки:

export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"

У меня были проблемы, которые вы демонстрируете, пока я не вспомнил об этом.

Также не забудьте установить глобальную версию ruby ​​для rbenv

person adisney    schedule 21.12.2011

После установки ruby ​​с помощью rbenv.

Вы перекомпилировали двоичные файлы прокладок с помощью команды

$ rbenv перефразировать

person Thillai Narayanan    schedule 05.02.2012