【问题标题】:How to install json gem - Failed to build gem native extension如何安装 json gem - 无法构建 gem 原生扩展
【发布时间】:2013-03-09 18:09:37
【问题描述】:

我正在尝试将 rails 应用程序部署到我的 ubuntu linux 服务器。我正在使用 capistrano 和 bundler,当它安装 gems 时失败并出现以下错误:

Installing json (1.7.7) with native extensions 
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

    /opt/ruby-enterprise-1.8.7-2012.02/bin/ruby extconf.rb 
creating Makefile

make
/usr/bin/gcc  -I. -I/opt/local/include -I/opt/ruby-enterprise-1.8.7- 2012.02/lib/ruby/1.8/i686-linux -I/opt/ruby-enterprise-1.8.7-2012.02/lib/ruby/1.8/i686-linux -I. -D_FILE_OFFSET_BITS=64  -fPIC -g -O3   -Wall  -c parser.c
In file included from /usr/include/i386-linux-gnu/bits/posix1_lim.h:157:0,
             from /usr/include/limits.h:145,
             from /usr/lib/gcc/i686-linux-gnu/4.6/include-fixed/limits.h:169,
             from /usr/lib/gcc/i686-linux-gnu/4.6/include-fixed/syslimits.h:7,
             from /usr/lib/gcc/i686-linux-gnu/4.6/include-fixed/limits.h:34,
             from /opt/ruby-enterprise-1.8.7-2012.02/lib/ruby/1.8/i686-linux/ruby.h:95,
             from ../fbuffer/fbuffer.h:6,
             from parser.rl:1:
/usr/include/i386-linux-gnu/bits/local_lim.h:39:26: fatal error: linux/limits.h: No such file or directory
compilation terminated.
make: *** [parser.o] Error 1

我正在运行 ruby​​ 企业版 1.8.7,如果不进行大量工作来升级其他站点,就无法升级 ruby​​,所以现在这不是一个选项。我尝试了 apt-get install ruby​​-dev 但没有帮助(我不确定这是不是正确的做法)。

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3.2 gem bundler ruby-enterprise-edition


    【解决方案1】:

    我认为您需要安装以下软件包之一:

    $ apt-file search limits.h | grep 'linux/limits.h'
    linux-headers-2.6.32-5-common: /usr/src/linux-headers-2.6.32-5-common/include/linux/limits.h
    linux-headers-2.6.32-5-common-openvz: /usr/src/linux-headers-2.6.32-5-common-openvz/include/linux/limits.h
    linux-headers-2.6.32-5-common-vserver: /usr/src/linux-headers-2.6.32-5-common-vserver/include/linux/limits.h
    linux-headers-2.6.32-5-common-xen: /usr/src/linux-headers-2.6.32-5-common-xen/include/linux/limits.h
    linux-libc-dev: /usr/include/linux/limits.h
    

    【讨论】:

    • 谢谢,我一定在某个时候删除了标题。我发现了一些我已经安装的通用的,但是在错误的地方,所以我将它们符号链接,并且能够很好地安装其余的 gem。 ln -s /usr/src/linux-headers-3.2.0-23/include/asm-generic /usr/include/
    猜你喜欢
    • 2015-06-17
    • 2012-11-02
    • 2016-01-17
    • 1970-01-01
    • 2013-11-01
    • 2012-09-15
    • 2014-04-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多