4

gem install berkshelf在 Centos 6 中失败Failed to build gecode library。它失败并显示以下输出。

# /opt/chef/embedded/bin/gem install berkshelf
Building native extensions.  This could take a while...
ERROR:  Error installing berkshelf:
    ERROR: Failed to build gem native extension.

        /opt/chef/embedded/bin/ruby extconf.rb
-> sh /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/dep-selector-libgecode-1.0.2/ext/libgecode3/vendor/gecode-3.7.3/configure --prefix=/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/dep-selector-libgecode-1.0.2/lib/dep-selector-libgecode/vendored-gecode --disable-doc-dot --disable-doc-search --disable-doc-tagfile --disable-doc-chm --disable-doc-docset --disable-qt --disable-examples --disable-flatzinc
checking for the host operating system... Linux
checking for g++... no
checking for c++... no
checking for gpp... no
checking for aCC... no
checking for CC... no
checking for cxx... no
checking for cc++... no
checking for cl.exe... no
checking for FCC... no
checking for KCC... no
checking for RCC... no
checking for xlC_r... no
checking for xlC... no
checking whether the C++ compiler works... no
configure: error: in `/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/dep-selector-libgecode-1.0.2/ext/libgecode3/vendor/gecode-3.7.3':
configure: error: C++ compiler cannot create executables
See `config.log' for more details
extconf.rb:98:in `block in run': Failed to build gecode library. (GecodeBuild::BuildError)
    from extconf.rb:97:in `chdir'
    from extconf.rb:97:in `run'
    from extconf.rb:104:in `<main>'


Gem files will remain installed in /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/dep-selector-libgecode-1.0.2 for inspection.
Results logged to /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/dep-selector-libgecode-1.0.2/ext/libgecode3/gem_make.out
4

2 回答 2

2

已安装yum install gecode-devel -y但仍然失败。

设置USE_SYSTEM_GECODE=1

# env USE_SYSTEM_GECODE=1 /opt/chef/embedded/bin/gem install berkshelf

这次失败,输出如下。

Building native extensions.  This could take a while...
Fetching: dep_selector-1.0.3.gem (100%)
Building native extensions.  This could take a while...
ERROR:  Error installing berkshelf:
    ERROR: Failed to build gem native extension.

        /opt/chef/embedded/bin/ruby extconf.rb
checking for main() in -lgecodesupport... yes
checking for main() in -lgecodesupport... yes
checking for main() in -lgecodekernel... yes
checking for main() in -lgecodeint... yes
checking for main() in -lgecodeminimodel... yes
checking for main() in -lgecodesearch... yes
creating Makefile

make
compiling define_dummy_init.cxx
make: g++: Command not found
make: *** [define_dummy_init.o] Error 127


Gem files will remain installed in /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/dep_selector-1.0.3 for inspection.
Results logged to /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/dep_selector-1.0.3/ext/dep_gecode/gem_make.out

已安装 c++ 编译器。

# yum install gcc-c++

它现在应该成功了。

 env USE_SYSTEM_GECODE=1 /opt/chef/embedded/bin/gem install berkshelf
Building native extensions.  This could take a while...
Fetching: solve-1.2.1.gem (100%)
Fetching: thor-0.19.1.gem (100%)
Fetching: sawyer-0.5.5.gem (100%)
Fetching: octokit-3.5.2.gem (100%)
Fetching: berkshelf-3.2.0.gem (100%)
Successfully installed dep_selector-1.0.3
Successfully installed solve-1.2.1
Successfully installed thor-0.19.1
Successfully installed sawyer-0.5.5
Successfully installed octokit-3.5.2
Successfully installed berkshelf-3.2.0
6 gems installed
Installing ri documentation for dep_selector-1.0.3...
Installing ri documentation for solve-1.2.1...
Installing ri documentation for thor-0.19.1...
Installing ri documentation for sawyer-0.5.5...
Installing ri documentation for octokit-3.5.2...
unable to convert "\xE2" to UTF-8 in conversion from ASCII-8BIT to UTF-8 to US-ASCII for lib/octokit/client/stats.rb, skipping
unable to convert "\xE2" to UTF-8 in conversion from ASCII-8BIT to UTF-8 to US-ASCII for lib/octokit/client/contents.rb, skipping
unable to convert "\xE2" to UTF-8 in conversion from ASCII-8BIT to UTF-8 to US-ASCII for lib/octokit/client/repositories.rb, skipping
unable to convert "\xE2" to UTF-8 in conversion from ASCII-8BIT to UTF-8 to US-ASCII for lib/octokit/client/users.rb, skipping
unable to convert "\xE2" to UTF-8 in conversion from ASCII-8BIT to UTF-8 to US-ASCII for lib/octokit/client/gists.rb, skipping
Installing ri documentation for berkshelf-3.2.0...
Installing RDoc documentation for dep_selector-1.0.3...
Installing RDoc documentation for solve-1.2.1...
Installing RDoc documentation for thor-0.19.1...
Installing RDoc documentation for sawyer-0.5.5...
Installing RDoc documentation for octokit-3.5.2...
unable to convert "\xE2" to UTF-8 in conversion from ASCII-8BIT to UTF-8 to US-ASCII for lib/octokit/client/stats.rb, skipping
unable to convert "\xE2" to UTF-8 in conversion from ASCII-8BIT to UTF-8 to US-ASCII for lib/octokit/client/contents.rb, skipping
unable to convert "\xE2" to UTF-8 in conversion from ASCII-8BIT to UTF-8 to US-ASCII for lib/octokit/client/repositories.rb, skipping
unable to convert "\xE2" to UTF-8 in conversion from ASCII-8BIT to UTF-8 to US-ASCII for lib/octokit/client/users.rb, skipping
unable to convert "\xE2" to UTF-8 in conversion from ASCII-8BIT to UTF-8 to US-ASCII for lib/octokit/client/gists.rb, skipping
Installing RDoc documentation for berkshelf-3.2.0...
于 2014-11-13T15:45:08.977 回答
1

这是一个老问题,但它一直出现在我的 Google 搜索中,所以我想我应该尝试留下答案,或者至少留下对我有用的答案。

尝试将 RAM 增加到 3GB 或更多。

我在一个 512MB 的虚拟系统中运行,并且在构建 spiceweasel 时在完全相同的位置一直用完 RAM。将我的 RAM 增加到 3GB(1.5GB 还不够)解决了我的问题。我希望它能为你解决问题。

于 2015-08-21T13:15:08.720 回答