安装json gem时出错'mkmf.rb找不到ruby的头文件'
对于上下文,它在具有防火墙的远程服务器上。 我正在通过代理设置我的环境。 我有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
由于我不确定问题是什么,我search了一下,发现了这些
-
gem install:无法构buildgem原生扩展(无法find头文件) – 这里的说明似乎是特定于正在安装的gem。
-
如何安装json gem – 无法构buildgem原生扩展这似乎是稍有不同的错误。
任何提示? 谢谢!
现代时代更新,如mimoralea所述 :
如果你使用的是Ruby 2.0或者2.2(谢谢@patrick-davey)。
sudo apt-get install ruby-dev sudo apt-get install ruby2.0-dev sudo apt-get install ruby2.2-dev
或者,通用的方式:
sudo apt-get install ruby`ruby -e 'puts RUBY_VERSION[/\d+\.\d+/]'`-dev
你发布的第一个链接就是你的情况:没有安装ruby开发环境。 编译ruby扩展需要开发env,这些扩展主要是用C
编写的。 代理与问题无关:一切正常下载正常,只是编译失败。
我build议你安装ruby-dev
(基于rpm的发行版的ruby-devel
)包到你的目标机器上。 gcc
包可能也需要。
尝试:
$ sudo apt-get install ruby-dev
或者,对于Redhat发行版:
$ sudo yum install ruby-devel
或者,对于[开放] SuSE:
$ sudo zypper 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
以防你使用SUSE
sudo yast2 -i ruby-devel
我有一个类似的问题使用cygwin运行以下命令:
$ gem install rerun
我通过安装下面的cygwin包来解决它:
- rubydevel的
- libffi-devel的
- GCC核心
- GCC-克++
- 使
- automake1.15
在Fedora 21中,只需打开一个terminal并以root用户身份安装Ruby Development文件即可。
dnf install ruby-devel
安装ruby-devel之后,你可能需要安装gcc