Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Gem therubyracer does not install even if libv8 is installed

Tags:

I have installed libv8 gem on windows by using this command:

gem install libv8 -- --with-system-v8

Then when I try to install therubyracer it gives me long error message:

Installing therubyracer 0.12.2 with native extensions

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

current directory: D:/Ruby21-x64/lib/ruby/gems/2.1.0/gems/therubyracer- 0.12.2/ext/v8
D:/Ruby21-x64/bin/ruby.exe -r ./siteconf20160105-4924-101vdyd.rb 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
--without-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=D:/Ruby21-x64/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
D:/Ruby21-x64/lib/ruby/gems/2.1.0/gems/libv8-3.16.14.13/ext/libv8/location.rb:50:in `configure': You have chosen to use the version of V8 found on your system (Libv8::Location::System::NotFoundError)
and *not* the one that is bundle with the libv8 rubygem. However,
it could not be located. please make sure you have a version of
v8 that is compatible with 3.16.14.13 installed. You may
need to special --with-v8-dir options if it is in a non-standard
location

thanks,
The Mgmt

What I understood is that therubyracer wants to find v8. I have installed Node.js which already has it. Is it even possible to use it? Or there are other solutions for therubyracer?

like image 679
Mr.D Avatar asked Jan 05 '16 13:01

Mr.D


2 Answers

This bug appears in OS X El Capitan. Just use [email protected] for therubyracer.

brew install [email protected]
bundle config --local build.libv8 --with-system-v8
bundle config --local build.therubyracer --with-v8-dir=/usr/local/opt/[email protected]
bundle install

Check detail of this issue

like image 143
Shin Kim Avatar answered Nov 01 '22 20:11

Shin Kim


On MacOS Mojave this works ok:

  1. install [email protected]

    brew install [email protected]
    
  2. edit profile(in my case vi ~/.zshrc) and add this:

    export PATH="/usr/local/opt/[email protected]/bin:$PATH"
    export LDFLAGS="-L/usr/local/opt/[email protected]/lib"
    export CPPFLAGS="-I/usr/local/opt/[email protected]/include"
    
  3. install therubyracer version in this case 0.12.2:

    gem install therubyracer -v '0.12.2' -- --with-v8-dir=/usr/local/opt/[email protected]
    
like image 37
shilovk Avatar answered Nov 01 '22 21:11

shilovk