2012-01-25 48 views
3

紅寶石一直使用考拉寶石交談over HTTP時,段錯誤:持久性的Ruby安裝段錯誤

/Users/pawel/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/net/http.rb:799: [BUG] Segmentation fault 

我已經試過如下:

  • 運行which -a ruby經由呈多發性紅寶石MacPorts的。所以我刪除那些和運行相同的命令再次返回僅/usr/bin/ruby
  • 我已經刪除的PostgreSQL MacPorts的版本,並與自制安裝了它,而不是(與MacPorts的,它安裝了自己的OpenSSL版本)
  • 運行openssl version回報OpenSSL 1.0.0g 18 Jan 2012
  • 我從RVM中刪除了Ruby 1.9.3,並嘗試使用下面的Luciano的方法。
  • 我也試着從RVM重新安裝1.9.3,並指定--with-openssl-dir=/opt/local因爲which openssl回報/opt/local/bin/openssl
  • 我已重新安裝RVM(現在是1.10.2版本/Users/pawel/.rvm/bin/rvm
  • 我已經升級到Ruby 1.9。 3-p125,也試過1.9.2
  • 我按照這裏的說明:http://www.christopherirish.com/2011/09/02/ruby-1-9-2-segmentation-fault-and-openssl/(這是我的上述步驟,實際上)。我也讀過克里斯托弗以前的文章here
  • 時,我跑那麼下面我得到預期的0我的項目目錄。

    ruby -rubygems -e" require 'eventmachine'; require 'openssl' "; echo $?

  • 我試圖sudo port -f deactivate openssl但後來當我嘗試啓動一個Rails的服務器我得到Library not loaded: /opt/local/lib/libssl.1.0.0.dylib

我需要一些更多的想法,我還可以嘗試什麼,或者我錯過了什麼。

+0

我刪除了'〜/ .rvm' dir nad從rvm('rvm pkg install openssl')安裝了rvm,ruby和'openssl'軟件包並開始正常工作 – fl00r

+0

您的意思是運行'rvm implode'?你的'rvm install ruby​​ 1.9.3'標誌看​​起來如何? – Simpleton

+0

我不知道'implode'。我刪除了rvm dir manualy'rm -rf〜/ .rvm',然後再安裝rvm,然後'rvm pkg install openssl','rvm pkg install iconv','rvm install 1.9.2 --with-openssl-dir = $ rvm_path/usr --with-iconv-dir = $ rvm_path/usr'(是的,大約是1.9.2,但我認爲它沒有區別) – fl00r

回答

2

問題似乎是Homebrew和MacPorts衝突,所以我刪除了MacPorts,刪除了所有包和/opt/local/目錄。由於Homebrew上的PostgreSQL安裝,這導致了一些問題,其中包括PG寶石。

所以我刪除了Postgres公式,然後重新安裝它,並使用Homebrew安裝OpenSSL。

之後,我崩潰了RVM,並再次安裝它和我的紅寶石(不知道這一步是否有必要),最後它能正常工作。

+0

我想你應該接受你的答案,然後! – jupp0r

+0

它通常說你只能在提交後2天內接受。猜猜這只是一個新鮮的問題。 – Simpleton

7

我也遇到了同樣的分段錯誤錯誤,但我試圖列出AWS-S3上的文件。

編輯

這種方式爲我工作:

export PATH=/usr/bin:/bin:/usr/sbin:/sbin:$HOME/.rvm/bin 
rvm remove 1.9.3 
rvm pkg install iconv 
rvm pkg install openssl 
rvm install ruby-1.9.3 --with-openssl-dir=~/.rvm/usr --with-iconv-dir=~/.rvm/usr 
  • 爲@Simpleton說,我寫在錯誤的地方註釋。現在我正在編輯一個響應。 ;-)
+0

謝謝你嘗試類似的重新安裝後爲我工作。關於你的rvm安裝線有些有趣,複製/粘貼不起作用,可能是一些特殊字符。不管怎樣,謝謝。 – Amala

+0

@Luciano仍然給你賞金,因爲這個答案可能適用於沒有MacPorts/Homebrew衝突的人。 – Simpleton

+0

在Lion上,我不得不在編譯之前運行'''export CC =/usr/bin/gcc'''。通過[Jeff Douglas]找到(http://blog.jeffdouglas.com/2011/08/01/ruby-1-9-2-install-errors-with-mac-os-x-lion-and-rvm/) – Forrest

0

我也遇到過這個問題,但使用了不同的解決方案。這裏是full stack trace of the error

以下是官方錯誤報告:http://bugs.ruby-lang.org/issues/6184堆棧跟蹤下的響應非常有幫助。

如果您使用的是OS X的默認openssl - >像brew install openssl那樣,並使用安裝的openssl進行構建,然後重試。

如果您使用的是由用戶安裝的openssl - >使用OS X默認ssl構建並重試。

這聽起來類似於我最近的一個問題,當時readline library installed in MacPorts broke a ruby installation。運行下面的腳本就碎紅寶石安裝顯示它加載的MacPorts OpenSSL的LIB

require 'net/https' 
puts `lsof -p #{$$} | grep ssl | awk '{print $9}'` 

(輸出)

/Users/john/.rbenv/versions/1.9.3-p125/lib/ruby/1.9.1/x86_64-darwin11.2.0/openssl.bundle 
/opt/local/lib/libssl.1.0.0.dylib 

解決的辦法是暫時將MacPorts的出/opt/local在安裝紅寶石。

  1. 退出所有正在訪問MacPorts文件的進程。你可以看到哪些與sudo lsof | grep /opt/local運行。
  2. sudo mv /opt/local /opt/localbak
  3. 打開一個新的終端,然後編譯並安裝Ruby
  4. sudo mv /opt/localbak /opt/local

之後,紅寶石安裝工作沿着正確的MacPorts並沒有加載從MacPorts的的的libssl文件。