一尘不染

安装json gem时出错'mkmf.rb找不到ruby的头文件'

json

对于上下文,它位于具有防火墙的远程服务器上。我正在通过代理设置我的环境。我有ruby 1.8.7。当我尝试gem install ..

sudo gem install --http-proxy <host address>:<port> json

我收到以下错误:

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

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

Gem files will remain installed in /usr/lib64/ruby/gems/1.8/gems/json-1.8.1 for inspection.
Results logged to /usr/lib64/ruby/gems/1.8/gems/json-1.8.1/ext/json/ext/generator/gem_make.out

有什么提示吗?谢谢!


阅读 229

收藏
2020-07-27

共1个答案

一尘不染

如mimoralea所述,现代更新:

如果您使用的是ruby 2.0或2.2(感谢@ patrick-davey)。

sudo apt-get install ruby2.0-dev
sudo apt-get install ruby2.2-dev
sudo apt-get install ruby2.3-dev

或者,通用方式:

sudo apt-get install ruby-dev

要么

sudo apt-get install ruby`ruby -e 'puts RUBY_VERSION[/\d+\.\d+/]'`-dev

您发布的第一个链接 正是
您的情况:没有安装ruby开发环境。需要开发环境来编译ruby扩展,这些扩展大部分是用编写的C。代理与问题无关:一切都下载良好,只是编译失败。

我建议您将软件包ruby-devruby-devel基于rpm的发行版)安装到目标计算机上。

gcc 包可能也是需要的。

尝试:

$ sudo apt-get install ruby-dev

或者,对于Redhat发行版:

$ sudo yum install ruby-devel

或者,对于[open] SuSE:

$ sudo zypper install ruby-devel
2020-07-27