#ruby-on-rails #gem #environment #ruby-1.9.2 #env
#ruby-на-рельсах #gem #Окружающая среда #ruby-1.9.2 #env #ruby-on-rails
Вопрос:
Я решил избавиться от rvm, и у меня возникли проблемы с компиляцией gem с моей новой версией ruby 1.9.2. Для gem требуется 1.9.2, он у меня есть, но говорит, что он не может быть установлен без него, поэтому сообщения об ошибках не имеют смысла.
Как я могу явно указать gem для компиляции с указанной версией ruby?
Gem::InstallError: linecache19 requires Ruby version >= 1.9.2.
An error occured while installing linecache19 (0.5.12), and Bundler cannot continue.
Make sure that `gem install linecache19 -v '0.5.12'` succeeds before bundling.
apps2 ~/projects/sms/apps2/apps2_admin $ ruby -v
ruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-darwin10.8.0]
apps2 ~/projects/sms/apps2/apps2_admin $ which ruby
/usr/local/bin/ruby
Ответ №1:
У меня была похожая проблема, я отследил ее и решил следующим образом:
Корень проблемы заключается в том, что в файле gem installer.rb переданная требуемая версия ruby из linecache19 равна 1.9.2, в то время как Gem.ruby_version имеет значение 1.9.2.dev.30909, а («1.9.2»> = «1.9.2.dev.30909») равно false.
итак, сначала убедитесь, что версия ruby — 1.9.2:
ruby -v
затем вручную используйте —force для обхода проверки версии:
gem install ruby_core_source
gem install linecache19 --force
если вы столкнулись с другой ошибкой, начинающейся со следующих строк:
checking for vm_core.h... no
*** extconf.rb failed ***
Вы должны явно указать исходный путь на vm_core.h
В моем случае:
$ which ruby
/Users/Reza/.rvm/rubies/ruby-1.9.2-rc2/bin/ruby
$ echo $rvm_path
/Users/Reza/.rvm/
итак, чтобы установить linecache19 :
gem install ruby_core_source
gem install linecache19 --force -- --with-ruby-include=$rvm_path/src/ruby-1.9.2-rc2/
у ruby-debug19 аналогичная проблема:
gem install ruby-debug19 --force -- --with-ruby-include=$rvm_path/src/ruby-1.9.2-rc2/
Вот и все!
Ответ №2:
У меня была такая же проблема (linecache19 зависает навсегда / на неопределенный срок) при использовании rbenv в OS X Lion. Я обнаружил, что решением было установить Ruby с опцией OpenSSL, например:
rbenv install 1.9.2-p290 --with-openssl-dir=/usr/local
rbenv rehash
rbenv global 1.9.2-p290
Теперь вы можете запустить или связать это, и оно будет установлено нормально:
gem install ruby-debug19
Надеюсь, это кому-то поможет.
Комментарии:
1. Мне удалось преодолеть сбой пакета. Спасибо!
Ответ №3:
Это то, что работало на Ubuntu:
У меня были те же проблемы, и я перепробовал так много вариантов, прежде чем наткнулся на это: http://beginrescueend.com/packages/openssl /
$ rvm pkg install openssl
$ rvm remove 1.9.2
$ rvm install 1.9.2 --with-openssl-dir=$rvm_path/usr
Это устраняет проблему с linecache19 rubydebug-19 и openssl:
*** extconf.rb failed ***
custom_require.rb:36:in `require': no such file to load -- openssl (LoadError)
затем вы можете сделать
gem install ruby-debug19
Комментарии:
1. Будьте осторожны при публикации стандартных / дословных ответов на несколько вопросов, они, как правило, помечаются сообществом как «спам». Если вы делаете это, то это обычно означает, что вопросы являются дубликатами, поэтому отметьте их как таковые.