ruby - 安装我的 gem 时出现奇怪的错误

标签 ruby rubygems gemspecs

我刚刚发布了 ginjo-rfm gem 的 v2.0.0。当我在 Snow Leopard 库存机(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

但是,gem 安装并成功运行。

我只有一个运行时依赖项:ActiveSupport >= 2.3.5,它已经安装在我所有的机器上。在我的 gem 中,我什至没有提到 multi_json。

更奇怪的是,当我尝试在 Ubuntu 8.10(rubygems 版本 1.3.5)上安装 ginjo-rfm 时,rubygems 抛出缓冲区溢出错误(见下文)。

我的 gem 有什么问题?这是一个相当简单的 gem & gemspec。我梳理了一下,找不到任何会导致此类错误的问题。

如果有人愿意看一下原始 gem :

mkdir ginjo; cd ginjo
gem fetch ginjo-rfm
tar -xf ginjo-rfm-2.0.0.gem

或者,查看作为 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]
/usr/local/bin/ruby[0x8060b79]
/usr/local/bin/ruby[0x8060e14]
/usr/local/bin/ruby[0x805ba84]
/usr/local/bin/ruby[0x805e605]
/usr/local/bin/ruby[0x8060b79]
/usr/local/bin/ruby[0x8060e14]
/usr/local/bin/ruby[0x805bb9c]
/usr/local/bin/ruby[0x805cde1]
/usr/local/bin/ruby[0x805e766]
/usr/local/bin/ruby[0x805f412]
/usr/local/bin/ruby[0x805be2d]
/usr/local/bin/ruby[0x805f412]
/usr/local/bin/ruby[0x8069ac5]
/usr/local/bin/ruby[0x8060c74]
/usr/local/bin/ruby[0x8060e14]
/usr/local/bin/ruby[0x805bb9c]
/usr/local/bin/ruby[0x805ec18]
/usr/local/bin/ruby[0x8060b79]
/usr/local/bin/ruby[0x8060e14]
/usr/local/bin/ruby[0x805ba84]
/usr/local/bin/ruby[0x805ec18]
/usr/local/bin/ruby[0x8060b79]
/usr/local/bin/ruby[0x8060e14]
/usr/local/bin/ruby(rb_obj_call_init+0x49)[0x8061779]
/usr/local/bin/ruby(rb_class_new_instance+0x2a)[0x808b53a]
/usr/local/bin/ruby[0x8056ecd]
/usr/local/bin/ruby[0x8060c74]
/usr/local/bin/ruby[0x8060e14]
/usr/local/bin/ruby(rb_call_super+0x68)[0x8068de8]
/usr/local/bin/ruby[0x80603ad]
/usr/local/bin/ruby[0x8060e14]
/usr/local/bin/ruby[0x805bb9c]
/usr/local/bin/ruby[0x805cd31]
/usr/local/bin/ruby[0x805e766]
/usr/local/bin/ruby[0x8060b79]
/usr/local/bin/ruby[0x8060e14]
/usr/local/bin/ruby[0x805ba84]
/usr/local/bin/ruby[0x8069e43]
/usr/local/bin/ruby[0x805d2be]
/usr/local/bin/ruby[0x8060b79]
======= Memory map: ========
08048000-080fb000 r-xp 00000000 ca:01 745349                             /usr/local/bin/ruby
080fb000-080fc000 r--p 000b2000 ca:01 745349                             /usr/local/bin/ruby
080fc000-080fd000 rw-p 000b3000 ca:01 745349                             /usr/local/bin/ruby
080fd000-0810d000 rw-p 00000000 00:00 0 
09fa2000-0cf87000 rw-p 00000000 00:00 0                                  [heap]
f68d4000-f6c6f000 rw-p 00000000 00:00 0 
f6ed9000-f6ee6000 r-xp 00000000 ca:01 743029                             /lib/libgcc_s.so.1
f6ee6000-f6ee7000 r--p 0000c000 ca:01 743029                             /lib/libgcc_s.so.1
f6ee7000-f6ee8000 rw-p 0000d000 ca:01 743029                             /lib/libgcc_s.so.1
f6ef6000-f6f06000 r-xp 00000000 ca:01 1523795                            /lib/tls/i686/cmov/libresolv-2.8.90.so
f6f06000-f6f07000 r--p 0000f000 ca:01 1523795                            /lib/tls/i686/cmov/libresolv-2.8.90.so
f6f07000-f6f08000 rw-p 00010000 ca:01 1523795                            /lib/tls/i686/cmov/libresolv-2.8.90.so
f6f08000-f6f0a000 rw-p 00000000 00:00 0 
f6f0a000-f6f0e000 r-xp 00000000 ca:01 1523788                            /lib/tls/i686/cmov/libnss_dns-2.8.90.so
f6f0e000-f6f0f000 r--p 00003000 ca:01 1523788                            /lib/tls/i686/cmov/libnss_dns-2.8.90.so
f6f0f000-f6f10000 rw-p 00004000 ca:01 1523788                            /lib/tls/i686/cmov/libnss_dns-2.8.90.so
f6f10000-f6f12000 r-xp 00000000 ca:01 743040                             /lib/libnss_mdns4_minimal.so.2
f6f12000-f6f13000 rw-p 00001000 ca:01 743040                             /lib/libnss_mdns4_minimal.so.2
f6f1b000-f7122000 rw-p 00000000 00:00 0 
f7122000-f712c000 r-xp 00000000 ca:01 807183                             /usr/local/lib/ruby/1.8/i686-linux/socket.so
f712c000-f712d000 r--p 00009000 ca:01 807183                             /usr/local/lib/ruby/1.8/i686-linux/socket.so
f712d000-f712e000 rw-p 0000a000 ca:01 807183                             /usr/local/lib/ruby/1.8/i686-linux/socket.so
f712e000-f7131000 r-xp 00000000 ca:01 807158                             /usr/local/lib/ruby/1.8/i686-linux/digest.so
f7131000-f7132000 r--p 00002000 ca:01 807158                             /usr/local/lib/ruby/1.8/i686-linux/digest.so
f7132000-f7133000 rw-p 00003000 ca:01 807158                             /usr/local/lib/ruby/1.8/i686-linux/digest.so
f7133000-f7147000 r-xp 00000000 ca:01 745216                             /usr/lib/libz.so.1.2.3.3
f7147000-f7149000 rw-p 00013000 ca:01 745216                             /usr/lib/libz.so.1.2.3.3
f7149000-f727c000 r-xp 00000000 ca:01 32847                              /usr/lib/i686/cmov/libcrypto.so.0.9.8
f727c000-f7284000 r--p 00132000 ca:01 32847                              /usr/lib/i686/cmov/libcrypto.so.0.9.8
f7284000-f7291000 rw-p 0013a000 ca:01 32847                              /usr/lib/i686/cmov/libcrypto.so.0.9.8
f7291000-f7295000 rw-p 00000000 00:00 0 
f7295000-f72d7000 r-xp 00000000 ca:01 32848                              /usr/lib/i686/cmov/libssl.so.0.9.8
f72d7000-f72d8000 ---p 00042000 ca:01 32848                              /usr/lib/i686/cmov/libssl.so.0.9.8
f72d8000-f72d9000 r--p 00042000 ca:01 32848                              /usr/lib/i686/cmov/libssl.so.0.9.8
f72d9000-f72dc000 rw-p 00043000 ca:01 32848                              /usr/lib/i686/cmov/libssl.so.0.9.8
f72dc000-f7313000 r-xp 00000000 ca:01 807173                             /usr/local/lib/ruby/1.8/i686-linux/openssl.so
f7313000-f7314000 r--p 00036000 ca:01 807173                             /usr/local/lib/ruby/1.8/i686-linux/openssl.so
f7314000-f7315000 rw-p 00037000 ca:01 807173                             /usr/local/lib/ruby/1.8/i686-linux/openssl.so
f7315000-f7432000 rw-p 00000000 00:00 0 
f7432000-f743c000 r-xp 00000000 ca:01 1523789                            /lib/tls/i686/cmov/libnss_files-2.8.90.so
f743c000-f743d000 r--p 00009000 ca:01 1523789                            /lib/tls/i686/cmov/libnss_files-2.8.90.so
f743d000-f743e000 rw-p 0000a000 ca:01 1523789                            /lib/tls/i686/cmov/libnss_files-2.8.90.so
f743e000-f7447000 r-xp 00000000 ca:01 1523791                            /lib/tls/i686/cmov/libnss_nis-2.8.90.so
f7447000-f7448000 r--p 00008000 ca:01 1523791                            /lib/tls/i686/cmov/libnss_nis-2.8.90.soAborted
cerne@rack02:~$ 

包含作为 yaml 的 gemspec 的元数据文件

--- !ruby/object:Gem::Specification 
name: ginjo-rfm
version: !ruby/object:Gem::Version 
  hash: 15
  prerelease: 
  segments: 
  - 2
  - 0
  - 0
  version: 2.0.0
platform: ruby
authors: 
- Geoff Coffey
- Mufaddal Khumri
- Atsushi Matsuo
- Larry Sprock
- Bill Richardson
autorequire: 
bindir: bin
cert_chain: []

date: 2012-01-08 00:00:00 Z
dependencies: 
- !ruby/object:Gem::Dependency 
  name: activesupport
  prerelease: false
  requirement: &id001 !ruby/object:Gem::Requirement 
    none: false
    requirements: 
    - - ">="
      - !ruby/object:Gem::Version 
        hash: 9
        segments: 
        - 2
        - 3
        - 5
        version: 2.3.5
  type: :runtime
  version_requirements: *id001
- !ruby/object:Gem::Dependency 
  name: activemodel
  prerelease: false
  requirement: &id002 !ruby/object:Gem::Requirement 
    none: false
    requirements: 
    - - ">="
      - !ruby/object:Gem::Version 
        hash: 3
        segments: 
        - 0
        version: "0"
  type: :development
  version_requirements: *id002
- !ruby/object:Gem::Dependency 
  name: rake
  prerelease: false
  requirement: &id003 !ruby/object:Gem::Requirement 
    none: false
    requirements: 
    - - ">="
      - !ruby/object:Gem::Version 
        hash: 3
        segments: 
        - 0
        version: "0"
  type: :development
  version_requirements: *id003
- !ruby/object:Gem::Dependency 
  name: rdoc
  prerelease: false
  requirement: &id004 !ruby/object:Gem::Requirement 
    none: false
    requirements: 
    - - ">="
      - !ruby/object:Gem::Version 
        hash: 3
        segments: 
        - 0
        version: "0"
  type: :development
  version_requirements: *id004
- !ruby/object:Gem::Dependency 
  name: rspec
  prerelease: false
  requirement: &id005 !ruby/object:Gem::Requirement 
    none: false
    requirements: 
    - - ~>
      - !ruby/object:Gem::Version 
        hash: 27
        segments: 
        - 1
        - 3
        - 0
        version: 1.3.0
  type: :development
  version_requirements: *id005
- !ruby/object:Gem::Dependency 
  name: diff-lcs
  prerelease: false
  requirement: &id006 !ruby/object:Gem::Requirement 
    none: false
    requirements: 
    - - ">="
      - !ruby/object:Gem::Version 
        hash: 3
        segments: 
        - 0
        version: "0"
  type: :development
  version_requirements: *id006
- !ruby/object:Gem::Dependency 
  name: yard
  prerelease: false
  requirement: &id007 !ruby/object:Gem::Requirement 
    none: false
    requirements: 
    - - ">="
      - !ruby/object:Gem::Version 
        hash: 3
        segments: 
        - 0
        version: "0"
  type: :development
  version_requirements: *id007
- !ruby/object:Gem::Dependency 
  name: libxml-ruby
  prerelease: false
  requirement: &id008 !ruby/object:Gem::Requirement 
    none: false
    requirements: 
    - - ">="
      - !ruby/object:Gem::Version 
        hash: 3
        segments: 
        - 0
        version: "0"
  type: :development
  version_requirements: *id008
- !ruby/object:Gem::Dependency 
  name: nokogiri
  prerelease: false
  requirement: &id009 !ruby/object:Gem::Requirement 
    none: false
    requirements: 
    - - ">="
      - !ruby/object:Gem::Version 
        hash: 3
        segments: 
        - 0
        version: "0"
  type: :development
  version_requirements: *id009
- !ruby/object:Gem::Dependency 
  name: hpricot
  prerelease: false
  requirement: &id010 !ruby/object:Gem::Requirement 
    none: false
    requirements: 
    - - ">="
      - !ruby/object:Gem::Version 
        hash: 3
        segments: 
        - 0
        version: "0"
  type: :development
  version_requirements: *id010
- !ruby/object:Gem::Dependency 
  name: ox
  prerelease: false
  requirement: &id011 !ruby/object:Gem::Requirement 
    none: false
    requirements: 
    - - ">="
      - !ruby/object:Gem::Version 
        hash: 3
        segments: 
        - 0
        version: "0"
  type: :development
  version_requirements: *id011
description: Rfm lets your Ruby scripts and Rails applications talk directly to your Filemaker server. Ginjo-rfm includes ActiveModel compatibility, multiple XML parsers, compound Filemaker find requests, and a configuration API.
email: http://groups.google.com/group/rfmcommunity
executables: []

extensions: []

extra_rdoc_files: 
- LICENSE
- README.md
- CHANGELOG.md
- lib/rfm/VERSION
files: 
- lib/rfm/base.rb
- lib/rfm/database.rb
- lib/rfm/error.rb
- lib/rfm/layout.rb
- lib/rfm/metadata/field.rb
- lib/rfm/metadata/field_control.rb
- lib/rfm/metadata/script.rb
- lib/rfm/metadata/value_list_item.rb
- lib/rfm/record.rb
- lib/rfm/resultset.rb
- lib/rfm/server.rb
- lib/rfm/utilities/case_insensitive_hash.rb
- lib/rfm/utilities/compound_query.rb
- lib/rfm/utilities/config.rb
- lib/rfm/utilities/core_ext.rb
- lib/rfm/utilities/factory.rb
- lib/rfm/utilities/xml_parser.rb
- lib/rfm/version.rb
- lib/rfm/xml_mini/hpricot.rb
- lib/rfm/xml_mini/ox_sax.rb
- lib/rfm/xml_mini/rexml_sax.rb
- lib/rfm.rb
- lib/rfm/VERSION
- LICENSE
- README.md
- CHANGELOG.md
homepage: https://rubygems.org/gems/ginjo-rfm
licenses: []

post_install_message: 
rdoc_options: 
- --line-numbers
- --main
- README.md
require_paths: 
- lib
required_ruby_version: !ruby/object:Gem::Requirement 
  none: false
  requirements: 
  - - ">="
    - !ruby/object:Gem::Version 
      hash: 3
      segments: 
      - 0
      version: "0"
required_rubygems_version: !ruby/object:Gem::Requirement 
  none: false
  requirements: 
  - - ">"
    - !ruby/object:Gem::Version 
      hash: 25
      segments: 
      - 1
      - 3
      - 1
      version: 1.3.1
requirements: []

rubyforge_project: 
rubygems_version: 1.8.10
signing_key: 
specification_version: 3
summary: Ruby to Filemaker adapter
test_files: []

has_rdoc: 

最佳答案

您的 RubyGems 版本已过时。只需这样做:

sudo gem update --system

然后:

sudo gem install rails

在 Mac OS X Snow Leopard 10.6.8 上测试并运行。

关于ruby - 安装我的 gem 时出现奇怪的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8902240/

相关文章:

ruby - JRuby 中的 Gem 定义 : Ignore extconf. rb

rubygems - 构建另一个 gem 时如何使用私有(private) gem 服务器托管的 gem

ruby - 在 ruby​​ 中调用 do block 内的方法

arrays - 创建包含哈希的数组

ruby - 十六进制转储到二进制 - xxd -r 等效

ruby - taps 从 sqlite 到 postgres rails4、ruby 1.9.3 的迁移失败

ruby - 如何读取一个文件的内容,然后将内容拆分成几个文件?

ruby - 在 Lisp/Ruby 中将 IF-ELSE 实现为过程

ruby-on-rails - 为什么我的 Rails 可安装引擎无法正确加载辅助方法?

ruby - `gem install` 多个 gem 的语法是什么,为每个 gem 指定版本?