0
votes

Using:

Ruby: 2.1.1
Rails: 4
OS: Debian Wheezy

Short problem story:

I installed Python 2.7 and now my bundle install won't succeed anymore. It got stuck at:

Using jquery-rails (3.1.1)

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

Long problem story:

I wanted to install 'therubyracer', because I got this error:
ExecJS::RuntimeUnavailable: Could not find a JavaScript runtime.

During that installation the following error occurred:

developer@vm2458:~/srv/dash/dashboard$ gem install 'therubyracer'
Fetching: ref-1.0.5.gem (100%)
Successfully installed ref-1.0.5
Fetching: libv8-3.16.14.3.gem (100%)
Building native extensions.  This could take a while...
ERROR:  Error installing therubyracer:
    ERROR: Failed to build gem native extension.

    /home/developer/.rvm/rubies/ruby-2.1.1/bin/ruby extconf.rb
creating Makefile
/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/ext/libv8/builder.rb:58:in `setup_python!': libv8 requires python 2 to be installed in order to build, but it is currently not available (RuntimeError)
    from /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/ext/libv8/builder.rb:42:in `block in build_libv8!'
    from /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/ext/libv8/builder.rb:40:in `chdir'
    from /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/ext/libv8/builder.rb:40:in `build_libv8!'
    from /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/ext/libv8/location.rb:24:in `install!'
    from extconf.rb:7:in `'

extconf failed, exit code 1

Gem files will remain installed in /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3 for inspection.
Results logged to /home/developer/.rvm/gems/ruby-2.1.1/extensions/x86-linux/2.1.0/libv8-3.16.14.3/gem_make.out

So I thought i should install Python 2.
Google brought me here: https://gist.github.com/whop/2659457
Everything seemed going well until I got back to the bundle install.

developer@vm2458:~/srv/dash/dashboard$ bundle install
Fetching gem metadata from https://rubygems.org/..........
Fetching additional metadata from https://rubygems.org/..
Resolving dependencies...
(...)
Using jquery-rails (3.1.1)

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

    /home/developer/.rvm/rubies/ruby-2.1.1/bin/ruby extconf.rb 
creating Makefile
Compiling v8 for ia32
Using python 2.7.3
Using compiler: /usr/bin/g++
g++: internal compiler error: Killed (program cc1plus)
Please submit a full bug report,
with preprocessed source if appropriate.
See  for instructions.
make[1]: *** [/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/hydrogen-instructions.o] Error 4
make: *** [ia32.release] Error 2
GYP_GENERATORS=make \
    build/gyp/gyp --generator-output="out" build/all.gyp \
                  -Ibuild/standalone.gypi --depth=. \
                  -Dv8_target_arch=ia32 \
                  -S.ia32  -Dv8_enable_backtrace=1 -Dv8_can_use_vfp2_instructions=true -Darm_fpu=vfpv2 -Dv8_can_use_vfp3_instructions=true -Darm_fpu=vfpv3
make[1]: Entering directory `/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out'
  CXX(target) /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/preparser_lib/src/allocation.o
  CXX(target) /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/preparser_lib/src/atomicops_internals_x86_gcc.o
  CXX(target) /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/preparser_lib/src/bignum.o
  CXX(target) /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/preparser_lib/src/bignum-dtoa.o
  CXX(target) /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/preparser_lib/src/cached-powers.o
  CXX(target) /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/preparser_lib/src/conversions.o
  CXX(target) /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/preparser_lib/src/diy-fp.o
  CXX(target) /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/preparser_lib/src/dtoa.o
  CXX(target) /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/preparser_lib/src/fast-dtoa.o
  CXX(target) /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/preparser_lib/src/fixed-dtoa.o
  CXX(target) /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/preparser_lib/src/once.o
  CXX(target) /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/preparser_lib/src/preparse-data.o
  CXX(target) /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/preparser_lib/src/preparser.o
  CXX(target) /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/preparser_lib/src/preparser-api.o
  CXX(target) /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/preparser_lib/src/scanner.o
  CXX(target) /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/preparser_lib/src/strtod.o
  CXX(target) /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/preparser_lib/src/token.o
  CXX(target) /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/preparser_lib/src/unicode.o
  CXX(target) /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/preparser_lib/src/utils.o
  AR(target) /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/tools/gyp/libpreparser_lib.a
  CXX(target) /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/preparser/preparser/preparser-process.o
  LINK(target) /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/preparser
  CXX(target) /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/accessors.o
  CXX(target) /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/allocation.o
  CXX(target) /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/api.o
  CXX(target) /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/assembler.o
  CXX(target) /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/ast.o
  CXX(target) /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/atomicops_internals_x86_gcc.o
  CXX(target) /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/bignum-dtoa.o
  CXX(target) /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/bignum.o
  CXX(target) /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/bootstrapper.o
  CXX(target) /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/builtins.o
  CXX(target) /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/cached-powers.o
  CXX(target) /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/checks.o
  CXX(target) /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/circular-queue.o
  CXX(target) /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/code-stubs.o
  CXX(target) /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/code-stubs-hydrogen.o
  CXX(target) /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/codegen.o
  CXX(target) /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/compilation-cache.o
  CXX(target) /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/compiler.o
  CXX(target) /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/contexts.o
  CXX(target) /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/conversions.o
  CXX(target) /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/counters.o
  CXX(target) /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/cpu-profiler.o
  CXX(target) /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/data-flow.o
  CXX(target) /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/date.o
  CXX(target) /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/dateparser.o
  CXX(target) /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/debug-agent.o
  CXX(target) /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/debug.o
  CXX(target) /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/deoptimizer.o
  CXX(target) /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/disassembler.o
  CXX(target) /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/diy-fp.o
  CXX(target) /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/dtoa.o
  CXX(target) /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/elements-kind.o
  CXX(target) /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/elements.o
  CXX(target) /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/execution.o
  CXX(target) /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/extensions/externalize-string-extension.o
  CXX(target) /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/extensions/gc-extension.o
  CXX(target) /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/extensions/statistics-extension.o
  CXX(target) /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/factory.o
  CXX(target) /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/fast-dtoa.o
  CXX(target) /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/fixed-dtoa.o
  CXX(target) /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/flags.o
  CXX(target) /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/frames.o
  CXX(target) /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/full-codegen.o
  CXX(target) /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/func-name-inferrer.o
  CXX(target) /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/gdb-jit.o
  CXX(target) /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/global-handles.o
  CXX(target) /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/handles.o
  CXX(target) /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/heap-profiler.o
  CXX(target) /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/heap.o
  CXX(target) /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/v8_base/src/hydrogen-instructions.o
make[1]: Leaving directory `/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out'
/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/ext/libv8/location.rb:36:in `block in verify_installation!': libv8 did not install properly, expected binary v8 archive '/home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/vendor/v8/out/ia32.release/obj.target/tools/gyp/libv8_base.a'to exist, but it was not found (Libv8::Location::Vendor::ArchiveNotFound)
    from /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/ext/libv8/location.rb:35:in `each'
    from /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/ext/libv8/location.rb:35:in `verify_installation!'
    from /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3/ext/libv8/location.rb:26:in `install!'
    from extconf.rb:7:in `'

extconf failed, exit code 1

Gem files will remain installed in /home/developer/.rvm/gems/ruby-2.1.1/gems/libv8-3.16.14.3 for inspection.
Results logged to /home/developer/.rvm/gems/ruby-2.1.1/extensions/x86-linux/2.1.0/libv8-3.16.14.3/gem_make.out
An error occurred while installing libv8 (3.16.14.3), and Bundler cannot continue.
Make sure that `gem install libv8 -v '3.16.14.3'` succeeds before bundling.

So I ran gem install libv8 -v '3.16.14.3' to make sure it succeeded:

developer@vm2458:~/srv/dash/dashboard$ gem install libv8 -v '3.16.14.3'
Building native extensions.  This could take a while...
developer@vm2458:~/srv/dash/dashboard$

Looks good, right?

However, the error persists.

This thread advised to install therubyracer manually, this won't work for me for some reason. Maybe because I'm using Ruby 2.1.1? I don't know.

Can anyone help me fix this or point me in the (possible) right direction?

1

1 Answers

0
votes

Rubyracer doesn't have version dependency on Ruby so 2.1.1 should work. The steps you have listed look fine to me.

-What error are you getting while installing rubyracer manually?

-Can you also try using latest version of jquery-rails: http://rubygems.org/gems/jquery-rails?