json - 安装 json gem 时出错 'mkmf.rb can' t find header

对于上下文,它位于具有防火墙的远程服务器上。我正在通过代理设置我的环境。我有 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

由于我不确定问题是什么,所以我搜索并找到了这些

  • gem install: Failed to build gem native extension (can't find header files) - 此处的说明似乎特定于正在安装的 gem。

  • How to install json gem - Failed to build gem native extension这似乎是略有不同的错误。

有什么提示吗?谢谢!

最佳答案

现代更新,如 stated by mimoralea :

In case that you are using ruby 2.0 or 2.2 (thanks @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

or

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

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

我建议你在你的目标机器上安装 ruby-dev(ruby-devel 用于基于 rpm 的发行版)包。

gcc 包也可能需要。

试试:

$ sudo apt-get install ruby-dev

或者,对于 Redhat 发行版:

$ sudo yum install ruby-devel

或者,对于 [open]SuSE:

$ sudo zypper install ruby-devel

关于json - 安装 json gem 时出错 'mkmf.rb can' t find header files for ruby​​',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20559255/

相关文章:

javascript - 为什么返回生成的 HTML 而不是 JSON 是一种不好的做法?或者是吗?

javascript - 加载本地 JSON 文件

javascript - 我不断收到 "Uncaught SyntaxError: Unexpect

php - JSON 编码 MySQL 结果

ruby-on-rails - 如何将 ruby​​ 哈希对象转换为 JSON?

javascript - 如何以编程方式美化 JSON?

javascript - JSON.stringify 的反转?

javascript - 删除 JSON 属性

ruby-on-rails - 如何使用 Ruby on Rails 解析 JSON?

c# - 使用 Newtonsoft 将 JSON 反序列化为 .NET 对象(或者可能是 LINQ