对于上下文,它位于具有防火墙的远程服务器上。我正在通过代理设置我的环境。我有ruby 1.8.7。当我尝试安装gem时
sudogem安装–http代理<;主机地址>;:&书信电报;港口>;json
我得到以下错误:
构建本机扩展。这可能需要一段时间。。。
错误:安装json时出错:
错误:无法生成gem本机扩展。
/usr/bin/ruby extconf.rb
mkmf.rb在/usr/lib/ruby/ruby.h中找不到ruby的头文件
Gem文件仍将安装在/usr/lib64/ruby/gems/1.8/gems/json-1.8.1中以供检查。
结果记录到/usr/lib64/ruby/gems/1.8/gems/json-1.8.1/ext/json/ext/generator/gem_make.out
因为我不确定问题出在哪里,我在谷歌上搜索并找到了这些
-
gem安装:未能构建gem本机扩展(无法找到头文件)-此处的说明似乎特定于正在安装的gem
-
如何安装json gem-未能构建gem本机扩展这似乎是一个稍有不同的错误
有什么提示吗?谢谢
现代更新,如mimoralea所述:
如果您使用的是ruby 2.0或2.2(谢谢@patrick davey)
sudo apt get install ruby2.0-dev
sudo apt get安装ruby2.2-dev
sudo apt get安装ruby2.3-dev
或者,一般方式:
sudoapt-get-install-ruby-dev
或
sudo apt get install ruby`ruby-e'将ruby\u版本[/\d+\.\d+/]'`-dev
您发布的第一个链接正是您的案例:没有安装ruby开发环境。编译ruby扩展需要Development env,这些扩展大多是用C编写的。代理与问题无关:所有内容都可以正常下载,只是编译失败
我建议您在目标机器上安装ruby-dev(ruby-develfor rpm-based发行版)包
gcc包也可能需要
尝试:
$sudo apt-get-install-ruby-dev
或者,对于Redhat发行版:
$sudo yum安装ruby-devel
或者,对于[开放式]用户:
$sudo zypper安装ruby-devel