无法安装json gem 1.8.6 - 无法在Ubuntu上构建gem原生扩展

时间:2017-06-01 09:08:54

标签: ruby-on-rails json ruby ubuntu bundler

在尝试安装JSON时,Ubuntu 16.04上的Bundler会产生以下错误。

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

    current directory: /tmp/bundler20170601-12986-10dsu07json-1.8.6/gems/json-1.8.6/ext/json/ext/generator
/usr/bin/ruby2.3 -r ./siteconf20170601-12986-op73sp.rb 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 /tmp/bundler20170601-12986-10dsu07json-1.8.6/gems/json-1.8.6 for inspection.
Results logged to /tmp/bundler20170601-12986-10dsu07json-1.8.6/extensions/x86_64-linux/2.3.0/json-1.8.6/gem_make.out

An error occurred while installing json (1.8.6), and Bundler cannot continue.
Make sure that `gem install json -v '1.8.6'` succeeds before bundling.

In Gemfile:
  react-rails was resolved to 1.7.2, which depends on
    rails was resolved to 4.2.7.1, which depends on
      actionmailer was resolved to 4.2.7.1, which depends on
        actionpack was resolved to 4.2.7.1, which depends on
          actionview was resolved to 4.2.7.1, which depends on
            rails-dom-testing was resolved to 1.0.8, which depends on
              rails-deprecated_sanitizer was resolved to 1.0.3, which depends on
                activesupport was resolved to 4.2.7.1, which depends on
                  json

由于缺少头文件,看起来好像无法编译gem扩展。我该怎么办?

1 个答案:

答案 0 :(得分:3)

似乎有similar problem on RedHat 7

对于Ubuntu,解决方案似乎是安装ruby-dev包。

sudo apt-get install ruby-dev