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

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

因为我不确定是什么问题,我谷歌了一下,找到了这些

gem安装:构建gem本地扩展失败(找不到头文件)-这里的说明似乎是特定于正在安装的gem。 如何安装json gem -未能建立gem本地扩展这似乎是略有不同的错误。

有提示吗?谢谢!


当前回答

我也遇到过这个问题,因为我是通过brightbox在Ubuntu上安装Ruby的,我以为Ruby -dev是Ruby的主干。所以我没有安装。安装ruby2.3-dev修复它:

sudo apt-get install ruby2.3-dev

其他回答

在Fedora 21及更高版本中,只需打开一个终端,以根用户身份安装Ruby Development文件。

dnf install ruby-devel

如果你正在使用ruby 2.0或2.2(感谢@patrick-davey)或2.3(感谢@juanitofatas)。

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

你在这里得到了模式。

我也遇到过这个问题,因为我是通过brightbox在Ubuntu上安装Ruby的,我以为Ruby -dev是Ruby的主干。所以我没有安装。安装ruby2.3-dev修复它:

sudo apt-get install ruby2.3-dev

安装ruby-devel后,可能需要安装gcc

在Mac 10.14上,头文件似乎没有安装在正确的位置。而不是像其他修复一样改变路径,我能够运行这个:

open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg

按照说明,它为我解决了这个问题。