【问题标题】:Ruby on rails - Error during bundle installRuby on rails - 捆绑安装期间出错
【发布时间】:2014-12-24 05:25:25
【问题描述】:

我一直在谷歌搜索下面的这个错误,但我无法解决这个错误:

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'

所以我用谷歌搜索了这个错误:

mkmf.rb 在 /usr/lib/ruby/include/ruby.h 找不到 ruby​​ 的头文件

我得到了一些类似的问题,例如: 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.

我真的很难解决这个问题(尽管它看起来很简单)。

【问题讨论】:

  • 您尝试安装sudo apt-get install ruby2.1-dev 吗?
  • 运行gem install sqlite3 -v '1.3.9'时会发生什么?
  • 使用rvm。不要将 Ruby 放到您的环境中,因为您可能会在您的项目中使用不同版本的 Ruby。
  • 非常感谢大家,我刚刚按照@Alireza 所说的进行操作,现在正在运行,感谢您的帮助,我会记住你们所说的!
  • @user309838 太好了,我会把它作为答案发布,所以你可以接受它作为解决方案。

标签: ruby-on-rails ruby ruby-on-rails-3


【解决方案1】:

尝试为您的2.1

Ruby 版本安装ruby-dev
$ sudo apt-get install ruby2.1-dev

【讨论】:

  • 如果你很懒,而且它不是生产系统,安装ruby-dev 也可以解决问题。是的,我意识到我在此评论中投入的精力比我键入版本特异性所需的额外 3 个字符所花费的精力更多,这很有趣。我责怪社会。
  • 现在应该是ruby-2.3-dev。如果您使用的是基于 Debian 的发行版(例如 Ubuntu、Mint),则可以通过运行 apt-cache search "ruby.*-dev" 来确定软件包名称。
【解决方案2】:

在尝试为 SASS 开发安装指南针时,在 Fedora 上遇到了类似的错误

gem install compass

失败了

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

/usr/bin/ruby extconf.rb mkmf.rb 在 /usr/share/include/ruby.h 找不到 ruby​​ 的头文件

运行这个

yum -y install gcc ruby-devel rubygems 

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

【讨论】:

  • 我在执行yum -y install ruby-devel 时得到No package ruby-devel available.。是否有更新的软件包要安装?
  • 这是我尝试安装指南针时帮助我的答案。然而,红宝石不是必需的。我刚刚使用 sudo yum install ruby​​-devel gcc -y
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-31
  • 1970-01-01
相关资源
最近更新 更多