title: Unable to install therubyracer on centos (errors with V8 and GCC)
body: <p>I'm trying to install therubyracer on my centos server and i'm having hella problems.</p>
  
  <pre><code>$ gem install therubyracer
  Building native extensions.  This could take a while...
  ERROR:  Error installing therubyracer:
      ERROR: Failed to build gem native extension.
  
          /usr/local/rvm/rubies/ruby-1.9.3-p125/bin/ruby extconf.rb
  checking for main() in -lpthread... yes
  checking for v8.h... no
  *** extconf.rb failed ***
  Could not create Makefile due to some reason, probably lack of
  necessary libraries and/or headers.  Check the mkmf.log file for more
  details.  You may need configuration options.
  
  Provided configuration options:
      --with-opt-dir
      --with-opt-include
      --without-opt-include=${opt-dir}/include
      --with-opt-lib
      --without-opt-lib=${opt-dir}/lib
      --with-make-prog
      --without-make-prog
      --srcdir=.
      --curdir
      --ruby=/usr/local/rvm/rubies/ruby-1.9.3-p125/bin/ruby
      --with-pthreadlib
      --without-pthreadlib
      --enable-debug
      --disable-debug
      --with-v8-dir
      --without-v8-dir
      --with-v8-include
      --without-v8-include=${v8-dir}/include
      --with-v8-lib
      --without-v8-lib=${v8-dir}/lib
  /usr/local/rvm/gems/ruby-1.9.3-p125@famnfo/gems/therubyracer-0.11.0/ext/v8/build.rb:42:in `build_with_system_libv8': unable to locate libv8. Please see output for details (RuntimeError)
      from extconf.rb:22:in `&lt;main&gt;'
      The Ruby Racer requires libv8 ~&gt; 3.11.8
      to be present on your system in order to compile
      and link, but it could not be found.
  
      In order to resolve this, you will either need to manually
      install an appropriate libv8 and make sure that this
      build process can find it. If you install it into the
      standard system path, then it should just be picked up
      automatically. Otherwise, you'll have to pass some extra
      flags to the build process as a hint.
  
      If you don't want to bother with all that, there is a
      rubygem that will do all this for you. You can add
      following line to your Gemfile:
          gem 'libv8', '~&gt; 3.11.8'
  
      We hope that helps, and we apologize, but now we have
      to push the eject button on this install.
  
      thanks,
      The Mgmt.
  
  
  
  Gem files will remain installed in /usr/local/rvm/gems/ruby-1.9.3-p125@famnfo/gems/therubyracer-0.11.0 for inspection.
  Results logged to /usr/local/rvm/gems/ruby-1.9.3-p125@famnfo/gems/therubyracer-0.11.0/ext/v8/gem_make.out
  </code></pre>
  
  <p>So then i tried to install this:</p>
  
  <pre><code>[root@allthingswebdesign current]# gem install libv8
  Building native extensions.  This could take a while...
  ERROR:  Error installing libv8:
      ERROR: Failed to build gem native extension.
  
          /usr/local/rvm/rubies/ruby-1.9.3-p125/bin/ruby extconf.rb
  creating Makefile
  which: no g++44 in (/usr/local/rvm/gems/ruby-1.9.3-p125/bin:/usr/local/rvm/gems/ruby-1.9.3-p125@global/bin:/usr/local/rvm/rubies/ruby-1.9.3-p125/bin:/usr/local/rvm/gems/ruby-1.9.3-p125@famnfo/bin:/usr/local/rvm/gems/ruby-1.9.3-p125@global/bin:/usr/local/rvm/rubies/ruby-1.9.3-p125/bin:/usr/local/rvm/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin)
  which: no g++46 in (/usr/local/rvm/gems/ruby-1.9.3-p125/bin:/usr/local/rvm/gems/ruby-1.9.3-p125@global/bin:/usr/local/rvm/rubies/ruby-1.9.3-p125/bin:/usr/local/rvm/gems/ruby-1.9.3-p125@famnfo/bin:/usr/local/rvm/gems/ruby-1.9.3-p125@global/bin:/usr/local/rvm/rubies/ruby-1.9.3-p125/bin:/usr/local/rvm/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin)
  which: no g++48 in (/usr/local/rvm/gems/ruby-1.9.3-p125/bin:/usr/local/rvm/gems/ruby-1.9.3-p125@global/bin:/usr/local/rvm/rubies/ruby-1.9.3-p125/bin:/usr/local/rvm/gems/ruby-1.9.3-p125@famnfo/bin:/usr/local/rvm/gems/ruby-1.9.3-p125@global/bin:/usr/local/rvm/rubies/ruby-1.9.3-p125/bin:/usr/local/rvm/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin)
  Unable to find a compiler officially supported by v8.
  It is recommended to use GCC v4.4 or higher
  Using compiler: g++
  Traceback (most recent call last):
    File "build/gyp/gyp", line 15, in ?
      import gyp
    File "build/gyp/pylib/gyp/__init__.py", line 8, in ?
      import gyp.input
    File "build/gyp/pylib/gyp/input.py", line 14, in ?
      import gyp.common
    File "build/gyp/pylib/gyp/common.py", line 375
      with open(source_path) as source_file:
              ^
  SyntaxError: invalid syntax
  gmake: *** [out/Makefile.x64] Error 1
  GYP_GENERATORS=make \
      build/gyp/gyp --generator-output="out" build/all.gyp \
                    -Ibuild/standalone.gypi --depth=. \
                    -Dv8_target_arch=x64 \
                    -S.x64 -Dhost_arch=x64
  
  
  Gem files will remain installed in /usr/local/rvm/gems/ruby-1.9.3-p125@famnfo/gems/libv8-3.11.8.4 for inspection.
  Results logged to /usr/local/rvm/gems/ruby-1.9.3-p125@famnfo/gems/libv8-3.11.8.4/ext/libv8/gem_make.out
  [root@allthingswebdesign current]# 
  </code></pre>
  
  <p>Output of which g++</p>
  
  <pre><code>$ which g++
  /usr/bin/g++
  
  
      $ /usr/bin/g++ --version
  g++ (GCC) 4.1.2 20080704 (Red Hat 4.1.2-52)
  Copyright (C) 2006 Free Software Foundation, Inc.
  This is free software; see the source for copying conditions.  There is NO
  warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  
  [root@allthingswebdesign current]# which g++
  /usr/bin/g++
  [root@allthingswebdesign current]# which g++44
  /usr/bin/g++44
  [root@allthingswebdesign current]# 
  
  [root@allthingswebdesign current]# cd /usr/bin/
  [root@allthingswebdesign bin]# ls -al g++*
  -rwxr-xr-x 4 root root 218432 May 10  2012 g++
  -rwxr-xr-x 2 root root 263704 Feb 21  2012 g++44
  lrwxrwxrwx 1 root root     12 Dec  9 17:21 g++-4.4 -&gt; /usr/bin/g++
  </code></pre>
  
  <p>Info you asked for:</p>
  
  <pre><code>[root@allthingswebdesign node-v0.8.15]# which gcc
  /usr/bin/gcc
  [root@allthingswebdesign node-v0.8.15]# which g++
  /usr/bin/g++
  [root@allthingswebdesign node-v0.8.15]# which g++44
  /usr/bin/g++44
  [root@allthingswebdesign node-v0.8.15]# ls -la /usr/bin/g++
  -rwxr-xr-x 4 root root 218432 May 10  2012 /usr/bin/g++
  [root@allthingswebdesign node-v0.8.15]# 
  </code></pre>
  
  <p><strong>EDIT</strong>
  After using @Chris's solution, i now get libv8 to install, but therubyracer still doesn't install and gives me this:</p>
  
  <pre><code>[root@allthingswebdesign famnfo.com]# gem install therubyracer
  Fetching: therubyracer-0.11.0.gem (100%)
  Building native extensions.  This could take a while...
  ERROR:  Error installing therubyracer:
      ERROR: Failed to build gem native extension.
  
          /usr/local/rvm/rubies/ruby-1.9.3-p125/bin/ruby extconf.rb
  checking for main() in -lpthread... yes
  creating Makefile
  
  make
  compiling accessor.cc
  accessor.cc:181:2: warning: no newline at end of file
  compiling array.cc
  array.cc:26:2: warning: no newline at end of file
  compiling backref.cc
  backref.cc:45:2: warning: no newline at end of file
  compiling constants.cc
  constants.cc:34:2: warning: no newline at end of file
  compiling constraints.cc
  constraints.cc:52:2: warning: no newline at end of file
  compiling context.cc
  compiling date.cc
  date.cc:18:2: warning: no newline at end of file
  compiling exception.cc
  exception.cc:38:2: warning: no newline at end of file
  compiling external.cc
  external.cc:43:2: warning: no newline at end of file
  compiling function.cc
  function.cc:58:2: warning: no newline at end of file
  compiling gc.cc
  gc.cc:43:2: warning: no newline at end of file
  compiling handles.cc
  handles.cc:34:2: warning: no newline at end of file
  compiling heap.cc
  heap.cc:31:2: warning: no newline at end of file
  compiling init.cc
  init.cc:39:2: warning: no newline at end of file
  compiling invocation.cc
  invocation.cc:86:2: warning: no newline at end of file
  compiling locker.cc
  locker.cc:77:2: warning: no newline at end of file
  compiling message.cc
  message.cc:51:2: warning: no newline at end of file
  compiling object.cc
  object.cc:334:2: warning: no newline at end of file
  compiling primitive.cc
  primitive.cc:8:2: warning: no newline at end of file
  compiling rr.cc
  rr.cc:83:2: warning: no newline at end of file
  compiling script.cc
  script.cc:80:17: warning: no newline at end of file
  compiling signature.cc
  signature.cc:18:2: warning: no newline at end of file
  compiling stack.cc
  stack.cc:76:2: warning: no newline at end of file
  compiling string.cc
  string.cc:47:17: warning: no newline at end of file
  compiling template.cc
  template.cc:175:2: warning: no newline at end of file
  compiling trycatch.cc
  trycatch.cc:87:2: warning: no newline at end of file
  compiling v8.cc
  v8.cc:87:2: warning: no newline at end of file
  compiling value.cc
  value.cc:239:2: warning: no newline at end of file
  linking shared-object v8/init.so
  /usr/bin/ld:/usr/local/rvm/gems/ruby-1.9.3-p125/gems/libv8-3.11.8.3-x86_64-linux/vendor/v8/out/x64.release/obj.target/tools/gyp/libv8_base.a: file format not recognized; treating as linker script
  /usr/bin/ld:/usr/local/rvm/gems/ruby-1.9.3-p125/gems/libv8-3.11.8.3-x86_64-linux/vendor/v8/out/x64.release/obj.target/tools/gyp/libv8_base.a:1: syntax error
  collect2: ld returned 1 exit status
  make: *** [init.so] Error 1
  
  
  Gem files will remain installed in /usr/local/rvm/gems/ruby-1.9.3-p125/gems/therubyracer-0.11.0 for inspection.
  Results logged to /usr/local/rvm/gems/ruby-1.9.3-p125/gems/therubyracer-0.11.0/ext/v8/gem_make.out
  </code></pre>