Ruby 路缘石+;机械化=故障?
当我需要机械化然后抑制时,我从irb(V0.9.5)获得以下输出:Ruby 路缘石+;机械化=故障?,ruby,segmentation-fault,mechanize,irb,curb,Ruby,Segmentation Fault,Mechanize,Irb,Curb,当我需要机械化然后抑制时,我从irb(V0.9.5)获得以下输出: $ irb >> require 'mechanize' => true >> require 'curb' => true >> 没问题。但是,当我以其他顺序要求LIB时,我得到以下结果: $ irb >> require 'curb' => true >> require 'mechanize' /opt/local/lib/ruby/1.8
$ irb
>> require 'mechanize'
=> true
>> require 'curb'
=> true
>>
没问题。但是,当我以其他顺序要求LIB时,我得到以下结果:
$ 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
$
我使用的gems是用于路缘和机械的最新版本(分别为V0.7.15和1.0.0)。对于ruby,我使用1.8.7(如上所示)
另外,我不熟悉[BUG]错误消息。这是否意味着我在ssl中遇到了已知的错误
提前感谢您的帮助 我无法在Linux或Mac OS上使用相同版本的Mechanize和Urb复制它:
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或类似的方式安装的。如果您正在运行SnowLeopard,则DVD上与SnowLeopard一起出现的XCode被认为是有缺陷的,可能会导致seg故障。从苹果的XCode网站将其更新到最新版本将解决这个问题。如果Ruby是在旧版本下编译的,您可能应该重新安装它
我看到的另一个可能导致这种错误的问题是在Leopard下安装Ruby作为32位,然后升级到64位的Snow Leopard。没有足够的信息可以告诉你。谢谢tin man。对不起,我的帖子里没有信息。我正在运行SnowLeopard,很可能是在Leopard上安装了Ruby。不久前我已经重新安装了XCode,所以我尝试重新安装Ruby(通过MacPorts),但不幸的是,没有成功地解决这个问题。我不知道如何强制重新安装MapPorts。对于RVM,它将是
RVM卸载1.9.2
,然后是RVM安装1.9.2
,这将导致重新编译,并导致新版本处于正确的“比特状态”。