Ruby 安装带有扩展的gems总是失败

Ruby 安装带有扩展的gems总是失败,ruby,rubygems,gem,Ruby,Rubygems,Gem,我刚刚安装了Ubuntu 13.04服务器,安装了RVM1.21.11、Ruby 1.9.3-p448和Rubygems 2.0.5 许多gem,如mongo、awesome_print、aws-s3和json,都已成功安装 然而,编译扩展的gem失败了。我已尝试安装nokogiri、mongo_ext和bson_ext。它们都以相同的方式失败,如下所示 你知道怎么解决这个问题吗 [nick@mongo01 ~] gem install mongo_ext -u -V --backtrace H

我刚刚安装了Ubuntu 13.04服务器,安装了RVM1.21.11、Ruby 1.9.3-p448和Rubygems 2.0.5

许多gem,如mongo、awesome_print、aws-s3和json,都已成功安装

然而,编译扩展的gem失败了。我已尝试安装nokogiri、mongo_ext和bson_ext。它们都以相同的方式失败,如下所示

你知道怎么解决这个问题吗

[nick@mongo01 ~] gem install mongo_ext -u -V --backtrace
HEAD http://rubygems.org/latest_specs.4.8.gz
302 Moved Temporarily
HEAD http://production.s3.rubygems.org/latest_specs.4.8.gz
304 Not Modified
Installing gem mongo_ext-0.19.3
/usr/local/rvm/gems/ruby-1.9.3-p448/gems/mongo_ext-0.19.3/Rakefile
/usr/local/rvm/gems/ruby-1.9.3-p448/gems/mongo_ext-0.19.3/mongo-extensions.gemspec
/usr/local/rvm/gems/ruby-1.9.3-p448/gems/mongo_ext-0.19.3/ext/cbson/extconf.rb
/usr/local/rvm/gems/ruby-1.9.3-p448/gems/mongo_ext-0.19.3/ext/cbson/buffer.c
/usr/local/rvm/gems/ruby-1.9.3-p448/gems/mongo_ext-0.19.3/ext/cbson/cbson.c
/usr/local/rvm/gems/ruby-1.9.3-p448/gems/mongo_ext-0.19.3/ext/cbson/encoding_helpers.c
/usr/local/rvm/gems/ruby-1.9.3-p448/gems/mongo_ext-0.19.3/ext/cbson/buffer.h
/usr/local/rvm/gems/ruby-1.9.3-p448/gems/mongo_ext-0.19.3/ext/cbson/encoding_helpers.h
/usr/local/rvm/gems/ruby-1.9.3-p448/gems/mongo_ext-0.19.3/ext/cbson/version.h
Building native extensions.  This could take a while...
/usr/local/rvm/rubies/ruby-1.9.3-p448/bin/ruby extconf.rb
checking for asprintf()... yes
checking for ruby/st.h... yes
checking for ruby/regex.h... yes
checking for ruby/encoding.h... yes
creating Makefile
make "DESTDIR="
compiling encoding_helpers.c
compiling buffer.c
compiling cbson.c
cbson.c: In function 'write_utf8':
cbson.c:80:36: warning: pointer targets in passing argument 1 of 'check_string' differ in signedness [-Wpointer-sign]
In file included from cbson.c:46:0:
encoding_helpers.h:26:10: note: expected 'const unsigned char *' but argument is of type 'char *'
cbson.c: In function 'objectid_generate':
cbson.c:858:5: warning: implicit declaration of function 'htonl' [-Wimplicit-function-declaration]
cbson.c:867:5: warning: implicit declaration of function 'htons' [-Wimplicit-function-declaration]
cbson.c: In function 'write_element':
cbson.c:264:17: warning: ignoring return value of 'asprintf', declared with attribute warn_unused_result [-Wunused-result]
linking shared-object mongo_ext/cbson.so
make "DESTDIR=" install
/usr/bin/install -c -m 0755 cbson.so /usr/local/rvm/gems/ruby-1.9.3-p448/gems/mongo_ext-0.19.3/ext/cbson/.gem.20130718-9545-1ue92ws/mongo_ext
installing default cbson libraries
ERROR:  While executing gem ... (NoMethodError)
    undefined method `join' for nil:NilClass
        /usr/local/rvm/rubies/ruby-1.9.3-p448/lib/ruby/site_ruby/1.9.1/rubygems/installer.rb:685:in `rescue in block in build_extensions'
        /usr/local/rvm/rubies/ruby-1.9.3-p448/lib/ruby/site_ruby/1.9.1/rubygems/installer.rb:675:in `block in build_extensions'
        /usr/local/rvm/rubies/ruby-1.9.3-p448/lib/ruby/site_ruby/1.9.1/rubygems/installer.rb:653:in `each'
        /usr/local/rvm/rubies/ruby-1.9.3-p448/lib/ruby/site_ruby/1.9.1/rubygems/installer.rb:653:in `build_extensions'
        /usr/local/rvm/rubies/ruby-1.9.3-p448/lib/ruby/site_ruby/1.9.1/rubygems/installer.rb:218:in `install'
        /usr/local/rvm/rubies/ruby-1.9.3-p448/lib/ruby/site_ruby/1.9.1/rubygems/dependency_installer.rb:371:in `block in install'
        /usr/local/rvm/rubies/ruby-1.9.3-p448/lib/ruby/site_ruby/1.9.1/rubygems/dependency_installer.rb:331:in `each'
        /usr/local/rvm/rubies/ruby-1.9.3-p448/lib/ruby/site_ruby/1.9.1/rubygems/dependency_installer.rb:331:in `each_with_index'
        /usr/local/rvm/rubies/ruby-1.9.3-p448/lib/ruby/site_ruby/1.9.1/rubygems/dependency_installer.rb:331:in `install'
        /usr/local/rvm/rubies/ruby-1.9.3-p448/lib/ruby/site_ruby/1.9.1/rubygems/commands/install_command.rb:166:in `block in execute'
        /usr/local/rvm/rubies/ruby-1.9.3-p448/lib/ruby/site_ruby/1.9.1/rubygems/commands/install_command.rb:158:in `each'
        /usr/local/rvm/rubies/ruby-1.9.3-p448/lib/ruby/site_ruby/1.9.1/rubygems/commands/install_command.rb:158:in `execute'
        /usr/local/rvm/rubies/ruby-1.9.3-p448/lib/ruby/site_ruby/1.9.1/rubygems/command.rb:305:in `invoke_with_build_args'
        /usr/local/rvm/rubies/ruby-1.9.3-p448/lib/ruby/site_ruby/1.9.1/rubygems/command_manager.rb:170:in `process_args'
        /usr/local/rvm/rubies/ruby-1.9.3-p448/lib/ruby/site_ruby/1.9.1/rubygems/command_manager.rb:130:in `run'
        /usr/local/rvm/rubies/ruby-1.9.3-p448/lib/ruby/site_ruby/1.9.1/rubygems/gem_runner.rb:60:in `run'
        /usr/local/rvm/rubies/ruby-1.9.3-p448/bin/gem:21:in `<main>'
[nick@mongo01 ~]
[nick@mongo01 ~] gem -v
2.0.5
[nick@mongo01 ~] ruby -v
ruby 1.9.3p448 (2013-06-27 revision 41675) [x86_64-linux]
[nick@mongo01 ~] rvm -v

rvm 1.21.11 (stable) by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [https://rvm.io/]
[nick@mongo01~]gem安装mongo_ext-u-V——回溯
头http://rubygems.org/latest_specs.4.8.gz
302临时搬家
头http://production.s3.rubygems.org/latest_specs.4.8.gz
304未修改
安装gem mongo_ext-0.19.3
/usr/local/rvm/gems/ruby-1.9.3-p448/gems/mongo_ext-0.19.3/Rakefile
/usr/local/rvm/gems/ruby-1.9.3-p448/gems/mongo_ext-0.19.3/mongo-extensions.gempec
/usr/local/rvm/gems/ruby-1.9.3-p448/gems/mongo_ext-0.19.3/ext/cbson/extconf.rb
/usr/local/rvm/gems/ruby-1.9.3-p448/gems/mongo_ext-0.19.3/ext/cbson/buffer.c
/usr/local/rvm/gems/ruby-1.9.3-p448/gems/mongo_ext-0.19.3/ext/cbson/cbson.c
/usr/local/rvm/gems/ruby-1.9.3-p448/gems/mongo_ext-0.19.3/ext/cbson/encoding_helpers.c
/usr/local/rvm/gems/ruby-1.9.3-p448/gems/mongo_ext-0.19.3/ext/cbson/buffer.h
/usr/local/rvm/gems/ruby-1.9.3-p448/gems/mongo_ext-0.19.3/ext/cbson/encoding_helpers.h
/usr/local/rvm/gems/ruby-1.9.3-p448/gems/mongo_ext-0.19.3/ext/cbson/version.h
构建本机扩展。这可能需要一段时间。。。
/usr/local/rvm/rubies/ruby-1.9.3-p448/bin/ruby extconf.rb
正在检查asprintf()。。。对
正在检查ruby/st.h。。。对
正在检查ruby/regex.h。。。对
正在检查ruby/encoding.h。。。对
创建Makefile
使“DESTDIR=”
编译编码帮助程序.c
编译buffer.c
编译cbson.c
cbson.c:在函数“write_utf8”中:
cbson.c:80:36:警告:“check_string”的传递参数1中的指针目标的符号性不同[-Wpointer sign]
在cbson.c:46:0中包含的文件中:
encoding_helpers.h:26:10:注意:应为“const unsigned char*”,但参数的类型为“char*”
cbson.c:在函数“objectid_generate”中:
cbson.c:858:5:警告:函数“htonl”的隐式声明[-Wimplicit函数声明]
cbson.c:867:5:警告:函数“htons”的隐式声明[-Wimplicit函数声明]
cbson.c:在函数“write_元素”中:
cbson.c:264:17:警告:忽略使用属性warn\u unused\u result[-Wunused result]声明的“asprintf”的返回值
链接共享对象mongo_ext/cbson.so
使“DESTDIR=”安装
/usr/bin/install-c-m 0755 cbson.so/usr/local/rvm/gems/ruby-1.9.3-p448/gems/mongo_ext-0.19.3/ext/cbson/.gem.20130718-9545-1e92ws/mongo_ext
安装默认cbson库
错误:执行gem时。。。(命名者)
nil:NilClass的未定义方法“join”
/usr/local/rvm/rubies/ruby-1.9.3-p448/lib/ruby/site\u ruby/1.9.1/rubygems/installer.rb:685:in `在构建扩展中拯救块'
/usr/local/rvm/rubies/ruby-1.9.3-p448/lib/ruby/site\u ruby/1.9.1/rubygems/installer.rb:675:in“block in build\u extensions”
/usr/local/rvm/rubies/ruby-1.9.3-p448/lib/ruby/site_ruby/1.9.1/rubygems/installer.rb:653:in'each'
/usr/local/rvm/rubies/ruby-1.9.3-p448/lib/ruby/site_ruby/1.9.1/rubygems/installer.rb:653:in'build_extensions'
/usr/local/rvm/rubies/ruby-1.9.3-p448/lib/ruby/site_ruby/1.9.1/rubygems/installer.rb:218:in'install'
/usr/local/rvm/rubies/ruby-1.9.3-p448/lib/ruby/site\u ruby/1.9.1/rubygems/dependency\u installer.rb:371:in'block in install'
/usr/local/rvm/rubies/ruby-1.9.3-p448/lib/ruby/site_ruby/1.9.1/rubygems/dependency_installer.rb:331:in'each'
/usr/local/rvm/rubies/ruby-1.9.3-p448/lib/ruby/site\u ruby/1.9.1/rubygems/dependency\u installer.rb:331:in'each_with_index'
/usr/local/rvm/rubies/ruby-1.9.3-p448/lib/ruby/site\u ruby/1.9.1/rubygems/dependency\u installer.rb:331:in'install'
/usr/local/rvm/rubies/ruby-1.9.3-p448/lib/ruby/site_-ruby/1.9.1/rubygems/commands/install_-command.rb:166:in'block in execute'
/usr/local/rvm/rubies/ruby-1.9.3-p448/lib/ruby/site_-ruby/1.9.1/rubygems/commands/install_-command.rb:158:in'each'
/usr/local/rvm/rubies/ruby-1.9.3-p448/lib/ruby/site_ruby/1.9.1/rubygems/commands/install_command.rb:158:in'execute'
/usr/local/rvm/rubies/ruby-1.9.3-p448/lib/ruby/site_-ruby/1.9.1/rubygems/command.rb:305:in`invoke_with_build_args'
/usr/local/rvm/rubies/ruby-1.9.3-p448/lib/ruby/site\u ruby/1.9.1/rubygems/command\u manager.rb:170:进程中的参数
/usr/local/rvm/rubies/ruby-1.9.3-p448/lib/ruby/site\u ruby/1.9.1/rubygems/command\u manager.rb:130:在“运行”中
/usr/local/rvm/rubies/ruby-1.9.3-p448/lib/ruby/site_-ruby/1.9.1/rubygems/gem_-runner.rb:60:in'run'
/usr/local/rvm/rubies/ruby-1.9.3-p448/bin/gem:21:in`'
[nick@mongo01 ~]
[nick@mongo01~]gem-v
2.0.5
[nick@mongo01~]ruby-v
ruby 1.9.3p448(2013-06-27修订版41675)[x86_64-linux]
[nick@mongo01~]rvm-v
rvm 1.21.11(稳定)作者:韦恩E.塞根,迈克尔·帕皮斯[https://rvm.io/]

这通常是因为本机扩展需要在系统上编译,而您没有安装正确的开发工具。你这样做了吗

 yum groupinstall 'Development Tools'

也许这些工具中有一个版本不正确,或者有其他问题?

这是由RubyGems中的错误引起的。它是固定的

在RubyGems v2.0.6发布之前,一个解决方法是手动应用。

已经安装了build essential软件包(适用于Ubuntu)。