0

mechanizeしてからcurbする必要がある場合、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
$ 

私が使用しているgemは、curbとmechの最新バージョンです(それぞれv 0.7.15と1.0.0)。ルビーには1.8.7を使用しています(上記のとおり)。

また、[BUG]のエラーメッセージもよくわかりません。これは、SSLで既知のバグに遭遇したことを意味しますか?

助けてくれてありがとう!

4

1 に答える 1

1

LinuxまたはMacOSで同じバージョンのMechanizeとCurbを使用して複製することはできません。

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にはバグがあり、セグメンテーション違反が発生する可能性があります。AppleのXCodeサイトから最新バージョンに更新すると、問題が修正されます。古いバージョンでコンパイルされた場合は、おそらくRubyを再インストールする必要があります。

この種のエラーを引き起こす可能性があると私が見たもう1つの問題は、RubyをLeopardに32ビットとしてインストールしてから、64ビットのSnowLeopardにアップグレードすることです。伝えることができる十分な情報がありません。

于 2011-03-29T03:07:53.957 に答える