安装json gem时出错'mkmf.rb无法找到ruby的头文件' [英] Error while installing json gem 'mkmf.rb can't find header files for ruby'

查看:602
本文介绍了安装json gem时出错'mkmf.rb无法找到ruby的头文件'的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

  sudo gem install --http-proxy<主机地址>:< port> json 

我得到以下错误:

 构建原生扩展。这可能需要一段时间... 
错误:安装json时出错:
错误:无法构建gem本机扩展。

/ usr / bin / ruby​​ extconf.rb
mkmf.rb在/usr/lib/ruby/ruby.h找不到头文件

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 install:无法构建gem原生扩展(找不到头文件) - 这里的说明似乎是特定于正在安装的gem。

  • 如何安装json gem - 无法构建宝石原生扩展这似乎是稍有不同的错误。 感谢!

    现代时代的更新,如由mimoralea 声明:


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

      sudo apt-get install ruby​​-dev $ b $ sudo apt-get install ruby​​2.0-dev $ b $ sudo apt-get install ruby​​2.2-dev $ b $ sudo apt-get install ruby​​2.3 -dev 


    或通用方式:


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







    您发布的第一个链接完全是您的情况:没有安装ruby开发环境。编译ruby扩展需要开发环境,这些扩展主要是用 C 编写的。代理与问题无关:所有内容都可以正常下载,只是编译失败。



    我建议您安装 ruby​​-dev

    code>( ruby​​-devel 用于基于rpm的发行版)打包到目标机器上。 gcc 包也可能需要。



    尝试:

      $ sudo apt-get install ruby​​-dev 

    或者,对于Redhat发行版:

      $ sudo yum install ruby​​-devel 

    或者,对于[open] SuSE:

      $ sudo zypper install ruby​​-devel 


    For context, it on a remote server which has a firewall. I'm setting up my environment through a proxy. I have ruby 1.8.7. When I try to gem install..

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

    I get the following error:

    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
    

    Since I was unsure what the problem is, I googled and found these

    Any hints? Thanks!

    解决方案

    Modern era update, as stated by mimoralea:

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

    or, generic way:

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


    The first link you’ve posted is exactly your case: there is no ruby development environment installed. Development env is needed to compile ruby extensions, which are mostly written in C. Proxy has nothing to do with the problem: everything is downloaded fine, just compilation fails.

    I would suggest you to install ruby-dev (ruby-devel for rpm-based distros) package onto you target machine. gcc package might be needed as well.

    Try:

    $ sudo apt-get install ruby-dev
    

    Or, for Redhat distro:

    $ sudo yum install ruby-devel
    

    Or, for [open]SuSE:

    $ sudo zypper install ruby-devel
    

    这篇关于安装json gem时出错'mkmf.rb无法找到ruby的头文件'的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆