由于 unf_ext (0.0.5) gem 的原因,Bundle 安装失败。

11

我在CentOS 6.3上使用rvm安装了Ruby 1.9.3p327和Rails 3.2.8。但是,在为特定项目文件夹执行bundle install时,当它尝试安装gem unf_ext 0.0.5时,该过程会在中途失败,并抛出以下错误:

安装带有本地扩展的unf_ext(0.0.5) Gem :: Installer :: ExtensionBuildError:ERROR:无法构建gem本地扩展。

/home/rradmin/.rvm/rubies/ruby-1.9.3-p327/bin/ruby extconf.rb -fPIC
checking for main() in -lstdc++... yes
checking for ruby/encoding.h... yes
creating Makefile

make
compiling unf.cc
cc1plus: warning: command line option "-Wdeclaration-after-statement" is valid for C/ObjC but not for C++
cc1plus: warning: command line option "-Wimplicit-function-declaration" is valid for C/ObjC but not for C++
In file included from /usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/vector:61,
from unf/normalizer.hh:4,
from unf.cc:1:
.....
....
...

Gem 文件将保留在 /home/rradmin/.rvm/gems/ruby-1.9.3-p327@r32/gems/unf_ext-0.0.5 中供检查。 结果记录在 /home/rradmin/.rvm/gems/ruby-1.9.3-p327@r32/gems/unf_ext-0.0.5/ext/unf_ext/gem_make.out。

安装 unf_ext(0.0.5)时发生错误,Bundler 无法继续。在捆绑之前确保 gem install unf_ext -v '0.0.5' 成功。

我也尝试了如上所述单独安装 unf_ext,但是出现了相同的错误。 我已参考https://github.com/cowboyd/therubyracer/issues/135,但仍然无法解决问题。请告诉我正确的解决方法。

谢谢。

4个回答

21
在Ubuntu上,我只需要执行:
sudo apt-get install build-essential

要解决这个问题。

(记录一下,我使用的是最新构建的Ubuntu 12.10 Server X64)


1

当您没有支持库来编译 gem 时,会出现此错误,请尝试安装以下软件包

sudo apt-get install build-essential openssl libreadline6 libreadline6-dev curl git-core     zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-0 libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev automake libtool bison

然后执行 bundle install 命令


谢谢Suman。 我正在使用CentOS 6.3,并且已经使用了以下命令:rvmsudo yum install -y gcc-c++ patch readline readline-devel zlib zlib-devel libyaml-devel libffi-devel openssl-devel make bzip2 autoconf automake libtool bison iconv-devel以获取所需的支持库。但是,我尝试使用yum运行您的命令时,发现很多库都缺失了。这个命令是否因操作系统而异? - Sachin Kadam
是的,它不同,你需要在CentOS 6.3中找到适当的软件包。尝试安装libreadline6和libreadline6-dev软件包,它可能会解决你的问题。 - yednamus

1

我通过使用yum install gcc-c++ libstdc++-devel安装libstdc++-devel解决了这个问题。


0

谢谢Suman。但我通过使用yum install gcc-g++ libstdc++-devel安装libstdc++-devel解决了这个问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接