обуздать + механизировать = сегфо? - PullRequest
0 голосов
/ 28 марта 2011

Я получаю следующий вывод из irb (v 0.9.5), когда мне требуется механизация, а затем обуздание:

$ 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).соответственно).Для ruby ​​я использую 1.8.7 (как видно выше).

Кроме того, я незнаком с сообщением об ошибке [BUG].Означает ли это, что я столкнулся с известной ошибкой в ​​ssl?

Заранее спасибо за помощь!

1 Ответ

1 голос
/ 29 марта 2011

Я не могу скопировать его, используя те же версии Mechanize и Curb в 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, то, как известно, XCode, поставляемый на DVD со Snow Leopard, содержит ошибки и может вызывать сбои сегментов. Обновление до последней версии с сайта Apple XCode решит проблему. Вам, вероятно, следует переустановить Ruby, если он был скомпилирован под старой версией.

Другая проблема, с которой я столкнулся, которая может привести к такой ошибке, - установить Ruby под Leopard как 32-битный, а затем перейти на Snow Leopard, который является 64-битным. Недостаточно информации, чтобы сказать.

...