2011-03-28 65 views
0

我從IRB下面的輸出(V 0.9.5),當我需要機械化,然後遏制:curb + mechanize = segfault?

$ irb 
>> require 'mechanize' 
=> true 
>> require 'curb' 
=> true 
>> 

沒有問題存在。然而,當我需要在其他命令庫,我得到如下:

$ irb 
>> require 'curb' 
=> true 
>> require 'mechanize' 
/opt/local/lib/ruby/1.8/openssl/ssl-internal.rb:30: [BUG] Segmentation fault 
ruby 1.8.7 (2011-02-18 patchlevel 334) [i686-darwin10] 

Abort trap 
$ 

我使用的寶石是最新版本的遏制和機甲(分別爲v 0.7.15和1.0.0, )。對於紅寶石,我使用1.8.7(如上所示)。

此外,我不熟悉[BUG]錯誤消息。這是否意味着我遇到了ssl中的已知錯誤?

在此先感謝您的幫助!

回答

1

使用機械化的版本相同,我不能複製它,並遏制住Linux或Mac OS:

Welcome to IRB. You are using ruby 1.8.7 (2011-02-18 patchlevel 334) [i686-linux]. Have fun ;) 
>> require 'rubygems' #=> false 
>> require 'curb' #=> true 
>> require 'mechanize' #=> true 

Welcome to IRB. You are using ruby 1.8.7 (2011-02-18 patchlevel 334) [x86_64-darwin10.6.0]. Have fun ;) 
>> require 'rubygems' #=> false 
>> require 'curb' #=> true 
>> require 'mechanize' #=> true 

因爲你的Ruby是在/ opt,我懷疑你的MacPorts通過或類似安裝。如果您正在運行Snow Leopard,那麼與Snow Leopard一起出現在DVD上的XCode就是已知的bug,並且會導致seg故障。將其更新到Apple的XCode網站的最新版本將解決該問題。如果它是在舊版本下編譯的,你可能應該重新安裝Ruby。

我看到的另一個可能導致這種錯誤的問題是在Leopard中安裝Ruby爲32位,然後升級到64位的Snow Leopard。沒有足夠的信息可以說明。

+0

謝謝錫人。對不起,我的帖子中缺乏信息。我使用Snow Leopard,並且很可能在Leopard上安裝了Ruby。我已經重新安裝了XCode,因此我嘗試重新安裝Ruby(通過MacPorts),但不幸的是,在解決問題方面沒有成功。 – peter 2011-04-04 17:42:06

+0

我不知道如何強制MaPorts重新安裝。使用RVM時,它將是一個'rvm uninstall 1.9.2',然後是'rvm install 1.9.2',這會導致重新編譯,並導致新版本處於正確的「bitted-ness」狀態。 – 2011-04-04 18:36:23