2011-09-23 96 views
4

我很鄙視,在沒有解決方案的情況下,爲了兩個(!!)天而煩惱以下問題。Lion:RVM安裝紅寶石問題 - 與openssl相關的問題

更新到Lion之後,我想使用最新版本的rvm安裝額外的ruby。

這裏的時候我打電話捆綁以後會發生什麼:

/Users/felix/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require': dlopen(/Users/janroesner/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/x86_64-darwin11.1.0/digest/sha1.bundle, 9): Symbol not found: _SHA1_Init (LoadError) 

好吧,OpenSSL的問題。所以我檢查了沒有openssl,但是/ usr中的系統在/ usr/lib中包含庫,而在/ usr/include/openssl中包含頭文件。檢查。

我決定用brew安裝更新的版本。之後,沒有紅寶石編譯BN_rand_range和BN_peudo_rand_range已被定義的錯誤。

似乎是最近gcc的更嚴格的類型檢查,所以我沒有註釋/usr/include/openssl/bn.h中導致衝突的第411行和第412行,導致ruby定義了它自己。現在紅寶石編譯,但我收到相同的錯誤符號未找到:_SHA1_Init。

所以我刪除了openssl頭文件bn.h中的註釋,我把它放在之前,並嘗試了相反的。我在〜/ .rvm/src/ruby​​-1.9.2-p290/ext/openssl/openssl_missing.h中評論了這些行。

同樣的結果。

之後,我徹底刪除〜/ .rvm,重新安裝它,並...有同樣的問題。

現在我想:

rvm pkg install openssl 
rvm remove 1.9.2-p290 
rvm install 1.9.2-p290 -C --with-openssl-dir=$rvm_path/usr 

相同的結果。

我很鄙視。誰能幫忙? 問候 菲利克斯

回答

14

對於誰應該永遠對獅子這個問題的人......這一些問題,重複的標頭來自openssl。您可以簡單地在本地安裝openssl,並告訴rvm使用該本地openssl版本。

你可以手工編譯opnessl帶有前綴的/ usr /本地或乾脆讓RVM做的工作:

rvm pkg install openssl 

然後告訴RVM紅寶石期間針對該版本鏈接安裝:

rvm install 1.9.2 --with-openssl-dir=/path/to/your/home/.rvm/usr 

如果你已經有一個本地安裝替換:

rvm install 1.9.2 --with-openssl-dir=/usr/local 

請勿嘗試可以經常閱讀的內容:

rvm install 1.9.2 -C --with-openssl-dir=/path/to/your/home/.rvm/usr 

這並不奏效。

0

我只是通過本教程去了,它的工作沒有任何問題:獲得最多的Rails:http://www.frederico-araujo.com/2011/07/30/installing-rails-on-os-x-lion-with-homebrew-rvm-and-mysql/

+0

我已經擁有了它,1.8.7以上版本的1.8.7,1.9.1和1.9.2版本可以處理很多應用程序的gemsets。它根本不適用於獅子。 – GeorgieF

+0

您是升級還是全新安裝?這個教程在我新鮮的Lion安裝上運行良好。 – Zepplock

+0

嘿Zepplock,我已經從SnowLeopard安裝升級。不幸的是,這篇文章並沒有指出我似乎有什麼問題。我不明白爲什麼首先定義標題定義碰撞,並且在移除碰撞之後,該特徵本身缺失。希望能夠向這個方向提供一些提示。無論如何。 – GeorgieF