我刚刚发布了ginjo-rfm gem的v2.0.0.当我在雪豹机器(rubygems版本1.3.5)上安装此gem时,我收到以下错误:
admin$ sudo gem install ginjo-rfm --no-rdoc --no-ri
ERROR: Error installing ginjo-rfm:
multi_json requires RubyGems version >= 1.3.6
Run Code Online (Sandbox Code Playgroud)
但是,gem安装并成功运行.
我只有一个运行时依赖项:ActiveSupport> = 2.3.5,这已经安装在我的所有机器上.在我的宝石中没有任何地方我甚至提到multi_json.
更奇怪的是,当我尝试在Ubuntu 8.10(rubygems版本1.3.5)上安装ginjo-rfm时,rubygems会抛出缓冲区溢出错误(见下文).
我的宝石出了什么问题?这是一个相当简单的宝石和gemspec.我已经梳理过,无法找到任何可能导致这类错误的问题.
如果有人愿意看看原始宝石:
mkdir ginjo; cd ginjo
gem fetch ginjo-rfm
tar -xf ginjo-rfm-2.0.0.gem
Run Code Online (Sandbox Code Playgroud)
或者,在"元数据"文件中查看嵌入为yaml的gemspec(参见下文).
谢谢!
缓冲区溢出错误
~$ sudo gem install ginjo-rfm --no-rdoc --no-ri
*** buffer overflow detected ***: /usr/local/bin/ruby terminated
======= Backtrace: =========
/lib/tls/i686/cmov/libc.so.6(__fortify_fail+0x48)[0xf76bf558]
/lib/tls/i686/cmov/libc.so.6[0xf76bd680]
/usr/local/lib/ruby/1.8/i686-linux/syck.so(rb_syck_mktime+0x545)[0xf752cdb5]
/usr/local/lib/ruby/1.8/i686-linux/syck.so(yaml_org_handler+0xabc)[0xf752d8dc]
/usr/local/lib/ruby/1.8/i686-linux/syck.so(syck_defaultresolver_node_import+0x3f)[0xf752d9af]
/usr/local/bin/ruby[0x8060c74]
/usr/local/bin/ruby[0x8060e14]
/usr/local/bin/ruby[0x8061a5a]
/usr/local/bin/ruby(rb_funcall+0x20)[0x8061b90]
/usr/local/lib/ruby/1.8/i686-linux/syck.so(rb_syck_load_handler+0x69)[0xf752b269]
/usr/local/lib/ruby/1.8/i686-linux/syck.so(syck_hdlr_add_node+0x4d)[0xf7525edd]
/usr/local/lib/ruby/1.8/i686-linux/syck.so(syckparse+0xc11)[0xf7526cb1]
/usr/local/lib/ruby/1.8/i686-linux/syck.so(syck_parse+0x32)[0xf7522e12]
/usr/local/lib/ruby/1.8/i686-linux/syck.so(syck_parser_load+0x112)[0xf752dd92]
/usr/local/bin/ruby[0x8056ecd]
/usr/local/bin/ruby[0x8060c74]
/usr/local/bin/ruby[0x8060e14]
/usr/local/bin/ruby[0x805ba84]
/usr/local/bin/ruby[0x805cd31]
/usr/local/bin/ruby[0x8060b79]
/usr/local/bin/ruby[0x8060e14]
/usr/local/bin/ruby[0x805ba84]
/usr/local/bin/ruby[0x805cd31] …Run Code Online (Sandbox Code Playgroud)