安装gem会导致错误

时间:2013-08-09 13:53:43

标签: ruby gem travis-ci

ruby​​ 2.0.0p247(2013-06-27修订版41674)[x86_64-linux]

gem 2.0.3

sudo gem install travis
Building native extensions.  This could take a while...
ERROR:  Error installing travis:
        ERROR: Failed to build gem native extension.

        /usr/bin/ruby1.9.1 extconf.rb
/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- mkmf (LoadError)
        from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
        from extconf.rb:4:in `<main>'


Gem files will remain installed in /var/lib/gems/1.9.1/gems/ffi-1.9.0 for inspection.
Results logged to /var/lib/gems/1.9.1/gems/ffi-1.9.0/ext/ffi_c/gem_make.out

在尝试安装其他宝石时也会遇到这种情况。我不是Ruby用户,谷歌搜索错误并没有给我任何有用的解决方案。

我使用RVM安装了Ruby 2.0:“curl -L https://get.rvm.io | bash -s stable --ruby”。

如果我做“sudo ruby​​ -v”我得到“ruby 1.9.3p194(2012-04-20 revision 35410)[x86_64-linux]”。

4 个答案:

答案 0 :(得分:23)

看起来您正在使用通过系统安装的Ruby 1.9.1。为了解决该错误,您应该安装ruby-dev包。

在Debian / Ubuntu中,

sudo apt-get install ruby1.9.1-dev

由于gem使用原生扩展,您还应该执行

sudo apt-get install build-essentials

之前。

但是,我强烈建议使用RVM并使用RVM ruby​​,因为它会为您的系统提取所有大部分dev依赖项,并且您不会经常遇到本机扩展问题。

答案 1 :(得分:3)

在Mac(El Capitan)上我不得不:

xcode-select --install

然后

sudo gem install -n /usr/local/bin travis

答案 2 :(得分:2)

您可以使用此hack安装travis gem:

ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future gem install travis

如果您需要更多权限,请将sudo放在开头。

这里的解释: Ruby Gem install Json fails on Mavericks and Xcode 5.1 - unknown argument: '-multiply_definedsuppress'

答案 3 :(得分:1)

首先,我不知道你是如何安装Ruby2.0的,但错误表明你仍在使用1.9.1。 可能你应该使用安装Ruby2.0的完整路径来调用'gem'。

另外,gem拒绝安装组件,因为它需要编译本机代码:你需要Ruby头文件(ruby-dev包),但也可能是make,gcc,...

请不要犹豫,告诉我们有关您的ruby2.0安装的更多信息。