如何安装json gem - 无法构建gem原生扩展 [英] How to install json gem - Failed to build gem native extension
问题描述
我试图在我的ubuntu linux服务器上部署一个rails应用程序。我使用capistrano和bundler,当它安装到gems时,它会失败,并显示以下错误信息:
安装json(1.7.7 )与原生扩展
Gem :: Installer :: ExtensionBuildError:错误:无法构建gem本机扩展。
/opt/ruby-enterprise-1.8.7-2012.02/bin/ruby extconf.rb
创建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
在/usr/include/i386-linux-gnu/bits/posix1_lim.h:157:0包含的文件中,
from /usr/include/limits.h:145,
来自/usr/lib/gcc/i686-linux-gnu/4.6/include-fixed/limits.h:169,
来自/ usr / lib / gcc / i686-linux-gnu / 4.6 / include-fixed / syslimits.h:7,
来自/usr/lib/gcc/i686-linux-gnu/4.6/include-fixed/limits.h: 34,
来自/opt/ruby-enterprise-1.8.7-2012.02/lib/ruby/1.8/i686-linux/ruby.h:95,
来自../fbuffer/fbuffer.h: 6,来自parser.rl的
:1:
/usr/include/i386-linux-gnu/bits/local_lim.h:39:26:致命错误:linux / limits.h:没有这样的文件或目录
编译终止。
make:*** [parser.o]错误1
我正在运行ruby enterprise版本1.8.7,不能升级红宝石,而没有很多工作升级其他网站,所以现在不是一种选择。我尝试了apt-get install ruby-dev,但它没有帮助(我不确定这是否是正确的事情)。
我想你需要安装这些包之一:
$ 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
I'm trying to deploy a rails app to my ubuntu linux server. I'm using capistrano and bundler and when it gets to installing gems it fails with this error:
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
I am running ruby enterprise edition 1.8.7 and can't upgrade ruby without a lot of work upgrading other sites so that's not an option right now. I tried apt-get install ruby-dev but it didn't help (I'm not sure that was the right thing anyway).
I think you need to install one of this packages :
$ 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
这篇关于如何安装json gem - 无法构建gem原生扩展的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!