Установка Gems без rvm, как root, с явной версией ruby - PullRequest
0 голосов
/ 09 октября 2011

Я решил избавиться от rvm, и у меня проблемы с компиляцией гема с моей новой версией ruby ​​1.9.2. Для gem требуется 1.9.2, он у меня есть, но говорит, что без него установить нельзя, поэтому сообщения об ошибках не имеют смысла.

Как я могу явно указать гему компилироваться с указанной версией 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

Ответы [ 3 ]

7 голосов
/ 16 октября 2011

У меня была похожая проблема, я отследил ее и решил ее следующим образом:

Корень проблемы в том, что в файле 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 голосов
/ 06 ноября 2011

У меня была та же проблема (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

Теперь вы можете запустить или связать это, и он будет прекрасно установлен:помогает кому-то.

0 голосов
/ 27 ноября 2011

Вот что работало в 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

Это решает проблему с linecache19rubydebug-19 и openssl:

*** extconf.rb failed ***
custom_require.rb:36:in `require': no such file to load -- openssl (LoadError)

, тогда вы можете сделать

gem install ruby-debug19
...