2011-10-09 55 views
0

我已經決定擺脫rvm,並且在編譯我的新版本ruby 1.9.2時遇到問題。寶石需要1.9.2,我有它,但說它不能安裝沒有,所以錯誤信息是沒有意義的。以root身份安裝Gem,使用顯式版本的紅寶石

我該如何明確地告訴寶石與所述版本的紅寶石編譯?

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 

回答

2

在OS X Lion上使用rbenv時,我遇到了同樣的問題(linecache19永遠掛起/無限期地掛起)。我找到了解決辦法是使用OpenSSL選項安裝Ruby,像這樣:

rbenv install 1.9.2-p290 --with-openssl-dir=/usr/local 
rbenv rehash 
rbenv global 1.9.2-p290 

現在,您可以運行或捆綁這一點,它會安裝罰款:

gem install ruby-debug19 

希望幫助別人。

+0

爲我解決了捆綁失敗問題。謝謝! –

+0

很高興有幫助。 – Mike

7

我也有類似的問題,追溯的問題,並解決它,如下所示:

問題的根源是,在創業板installer.rb文件傳遞所需的紅寶石版本從linecache19爲1.9 .2而Gem.ruby_version類似於1.9.2.dev.30909,並且(「1.9.2」> =「1.9.2.dev.30909」)爲false。

所以首先成爲確保紅寶石版本是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/ 

紅寶石debug19有一個類似的問題:

gem install ruby-debug19 --force -- --with-ruby-include=$rvm_path/src/ruby-1.9.2-rc2/ 

這一切!

+0

爲我工作!謝謝! – Lichtamberg

0

這是在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 ruby​​debug-19和問題OpenSSL:已

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

那麼你可以做

gem install ruby-debug19 
+0

在發佈複製和粘貼樣板/逐字回答多個問題時要小心,這些問題往往會被社區標記爲「垃圾」。如果你這樣做,那麼它通常意味着問題是重複的,所以標記它們。 – Kev