gem install berkshelf fails with Failed to build gecode library in Centos 6

2.4k views Asked by At

gem install berkshelf fails with Failed to build gecode library in Centos 6. It fails with the following output.

# /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
2

There are 2 answers

0
f01 On

Installed yum install gecode-devel -y but still fails.

Set USE_SYSTEM_GECODE=1.

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

Fails this time with the following output.

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

Installed c++ compiler.

# yum install gcc-c++

It should now succeed.

 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...
1
Joel Griffiths On

This is an old question, but it kept popping up in my Google searches so I thought I should try to leave an answer or, at a minimum, what worked for me.

Try increasing your RAM to 3GB or more.

I was running in a virtual system with 512MB and kept running out of RAM in the exact same spot while building spiceweasel. Increasing my RAM to 3GB (1.5GB was not enough) fixed the problem for me. I hope it will fix the problem for you.