Error installing libv8: ERROR: Failed to build gem

2019-01-05 07:26发布

I made a rails project with,

rails new test_bootstrap.

succeeded.

moved to the project dir and added the gems

gem "therubyracer"
gem "less-rails" #Sprockets (what Rails 3.1 uses for its asset pipeline) supports LESS
gem "twitter-bootstrap-rails"

and run

bundle install

after that, i have this error.

Installing libv8 (3.16.14.3)
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

c:/RailsInstaller/Ruby1.9.3/bin/ruby.exe extconf.rb
creating Makefile
지정된 경로를 찾을 수 없습니다.                                                          지정된 경로를 찾을 수
없습니다.                                                          지정된 경로를 찾을 수 없습니다.

c:/RailsInstaller/Ruby1.9.3/lib/ruby/ge
ms/1.9.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 (RuntimeErr
or) from c:/RailsInstaller/Ruby1.9.
3/lib/ruby/gems/1.9.1/gems/libv8-3.16.14.3/ext/libv8/builder.rb:42:in `block in build_lib
v8/builder.rb:42:in `block in build_libv8!'
        from c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/libv8-3.16.14.3/ext/lib
v8/builder.rb:40:in `chdir'
        from c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/libv8-3.16.14.3/ext/lib
v8/builder.rb:40:in `build_libv8!'
        from c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/libv8-3.16.14.3/ext/lib
v8/location.rb:24:in `install!'
        from extconf.rb:7:in `<main>'                                                    


Gem files will remain installed in c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/l
ibv8-3.16.14.3 for inspection.
Results logged to c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/libv8-3.16.14.3/ex
t/libv8/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.

sorry for some Koreans. It says, It can't find the chosen path or something like that.

and i tried to run this command

gem install libv8 -v '3.16.14.3' 

throwing the same error.

12条回答
Juvenile、少年°
2楼-- · 2019-01-05 07:29

My issue wasn't related with therubyracer at all just libv8 gem and as @rishav-bhardwaj pointed --with-system-v8 didn't do the trick, instead i had to exec

bundle update

then

bundle install

and finally

Bundle complete!

The error is gone!

Gem::Ext::BuildError: ERROR: Failed to build gem native extension. An error occurred while installing libv8 (3.16.14.7), and Bundler cannot continue. Make sure that `gem install libv8 -v '3.16.14.7'` succeeds before bundling.

查看更多
够拽才男人
3楼-- · 2019-01-05 07:31

I was also unable to install this gem instead of using

--with-system-v8

once try to do bundle update which worked fine for me

查看更多
放荡不羁爱自由
4楼-- · 2019-01-05 07:32

try this one:

gem install libv8 -v '3.16.14.3' -- --with-system-v8

Note : Because libv8 is the interface for the V8 engine used by therubyracer, you may need to use libv8, even if you have V8 installed already. If you wish to use your own V8 installation, rather than have it built for you, use the --with-system-v8 option.

For more you can go through the documentation of libv8 on github

查看更多
干净又极端
5楼-- · 2019-01-05 07:32

Other workaround to fix the problem is to separate them in the Gemfile

group :production do
 gem 'libv8', '~> 3.11.8.3'
 gem 'therubyracer', :platform => :ruby
end

And then run the bundle command: bundle install --without production

查看更多
冷血范
6楼-- · 2019-01-05 07:37

That works for me. Put that in your Gemfile

gem 'libv8', '~>3.16.14.7'

查看更多
smile是对你的礼貌
7楼-- · 2019-01-05 07:38

I tried the solution listed above command which looks very fine for installing individual gem, but for bundler users - you should use bundle config

Use

bundle config build.libv8 --with-system-v8 

and

bundle config build.therubyracer --with-system-v8

to configure bundler to take the parameters to be used while installing specific gem

查看更多
登录 后发表回答