2014-10-28 95 views
13

我一直在谷歌上搜索下面这个错误,但我解决不了这个错误:Ruby on Rails的 - 捆绑时的错误安装

Gem::Ext::BuildError: ERROR: Failed to build gem native extension. 

    /usr/bin/ruby2.1 extconf.rb 
mkmf.rb can't find header files for ruby at /usr/lib/ruby/include/ruby.h 

extconf failed, exit code 1 

Gem files will remain installed in /home/dyego/.bundler/tmp/9200/gems/sqlite3-1.3.9 for inspection. 
Results logged to /home/dyego/.bundler/tmp/9200/extensions/x86_64-linux/2.1.0/sqlite3-1.3.9/gem_make.out 
An error occurred while installing sqlite3 (1.3.9), and Bundler cannot continue. 
Make sure that `gem install sqlite3 -v '1.3.9'` succeeds before bundling. 
     run bundle exec spring binstub --all 
/usr/lib/ruby/vendor_ruby/bundler/resolver.rb:296:in `resolve': Could not find gem 'sqlite3 (>= 0) ruby' in the gems available on this machine. (Bundler::GemNotFound) 
    from /usr/lib/ruby/vendor_ruby/bundler/resolver.rb:168:in `start' 
    from /usr/lib/ruby/vendor_ruby/bundler/resolver.rb:129:in `block in resolve' 
    from /usr/lib/ruby/vendor_ruby/bundler/resolver.rb:128:in `catch' 
    from /usr/lib/ruby/vendor_ruby/bundler/resolver.rb:128:in `resolve' 
    from /usr/lib/ruby/vendor_ruby/bundler/definition.rb:179:in `resolve' 
    from /usr/lib/ruby/vendor_ruby/bundler/definition.rb:114:in `specs' 
    from /usr/lib/ruby/vendor_ruby/bundler/definition.rb:159:in `specs_for' 
    from /usr/lib/ruby/vendor_ruby/bundler/definition.rb:148:in `requested_specs' 
    from /usr/lib/ruby/vendor_ruby/bundler/environment.rb:18:in `requested_specs' 
    from /usr/lib/ruby/vendor_ruby/bundler/runtime.rb:13:in `setup' 
    from /usr/lib/ruby/vendor_ruby/bundler.rb:120:in `setup' 
    from /usr/lib/ruby/vendor_ruby/bundler/setup.rb:17:in `<top (required)>' 
    from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require' 
    from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require' 

所以我GOOGLE了这个错误:

mkmf.rb can't find header files for ruby at /usr/lib/ruby/include/ruby.h

和我有这样一个有些类似的问题: Error while installing json gem 'mkmf.rb can't find header files for ruby'

但我已经安装了Ruby-dev的:

sudo apt-get install ruby-dev 
Reading package lists... Done 
Building dependency tree  
Reading state information... Done 
ruby-dev is already the newest version. 
0 upgraded, 0 newly installed, 0 to remove and 72 not upgraded. 

我真的很努力地解决这个问题(即使它看起来很简单)。

+0

你试过安装'sudo apt-get install ruby​​2.1-dev'吗? – Alireza 2014-10-28 17:23:43

+0

运行'gem install sqlite3 -v'1.3.9''时会发生什么? – Anthony 2014-10-28 17:26:59

+2

使用'rvm'。不要把Ruby放到你的环境中,因为你可能会在你的项目中使用不同版本的Rubies。 – blelump 2014-10-28 17:28:10

回答

38

尝试安装ruby-dev库你的Ruby版本,这是2.1

$ sudo apt-get install ruby2.1-dev 
+2

如果你懒惰,它不是一个生产系统,只需安装'ruby-dev'也可以。是的,我意识到我为这个评论付出了更多的努力,而不是为了输入版本特异性所需的额外3个字符。我责怪社会。 – 2015-08-12 01:06:41

+0

现在应该是'ruby-2.3-dev'。如果您使用的是基于Debian的发行版(例如Ubuntu,Mint),则可以通过运行'apt-cache search“ruby。* - dev”'来计算软件包名称。 – einpoklum 2017-01-28 13:07:58

3

尝试安装指南针SASS开发时对Fedora的类似错误

gem install compass 

失败,

构建原生扩展。这可能需要一段时间... 错误:安装指南针时出错: 错误:无法生成gem原生扩展。

在/ usr/bin中/红宝石extconf.rb在/usr/share/include/ruby.h

mkmf.rb找不到红宝石头文件冉这个

yum -y install gcc ruby-devel rubygems 

和然后能够再次成功运行安装。

+0

执行'yum -y install ruby​​-devel'时,我得到'没有package ruby​​-devel available.'。 是否有更新的软件包可以安装? – 2016-01-14 00:17:13

+0

这是我尝试安装指南针时帮助我的答案。但是,rubygems是没有必要的。我只是用sudo yum安装ruby-devel gcc -y – 2016-06-16 04:11:27