Reputation: 3804
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.
Upvotes: 196
Views: 121698
Reputation: 3430
With homebrew this helps me to solve this error.
brew tap homebrew/versions
brew install v8-315
gem install libv8 -v '3.16.14.13' -- --with-system-v8
gem install therubyracer -- --with-v8-dir=/usr/local/opt/v8-315
bundle install
Seen on rubyracer Github issues.
For new version of homebrew as homebrew/versions has been removed:
brew install [email protected]
gem install libv8 -v '3.16.14.13' -- --with-system-v8
gem install therubyracer -- --with-v8-dir=/usr/local/opt/[email protected]
bundle install
Suggestion by @gorner (thx)
Upvotes: 50
Reputation: 299
I solved this problem using:
gem install libv8 -v '3.16.14.19' -- --with-system-v8
Upvotes: 1
Reputation: 2213
We ran into a compilation error – out of the blue – in December 2020 on Debian 10 VMs as well as our local Debian 10 Desktops.
Bundle fails trying to compile
Installing libv8 3.16.14.19 with native extensions
The error log says:
IOError: [Errno 2] No such file or directory: '/home/username/application/shared/bundle/ruby/2.6.0/gems/libv8-7.3.492.27.1/vendor/build/config/gclient_args.gni'
Running: gclient root
Running: gclient config --spec 'solutions = [
{
"url": "https://chromium.googlesource.com/v8/v8.git",
"managed": False,
"name": "v8",
"deps_file": "DEPS",
"custom_deps": {},
},
]
'
Running: gclient sync --with_branch_heads
Subprocess failed with return code 1.
We've checked the tags on the Google v8 Repo and found that the requested tag 7.3.492.27.1
seems not to be available on the Google Repo:
libv8 did not install properly, expected binary v8 archive '/home/.../gyp
/libv8_snapshot.a'to exist, but it was not found
(Libv8::Location::Vendor::ArchiveNotFound)
Our only solution was to remove therubyracer
completely from the Gemfile :-(
Upvotes: 1
Reputation: 11
I tried the below commands on my local, it worked fine:
brew install [email protected]
gem install libv8 -v 'YOUR_VERSION' -- --with-system-v8
gem install therubyracer -v 'YOUR_VERSION' -- --with-v8-dir=/usr/local/opt/[email protected]
bundle install
Upvotes: 1
Reputation: 3857
I also had problems using libv8
and mini_racer
. Resolved the problem with
brew install v8
bundle update libv8 mini_racer
Using the latest versions mini_racer 0.2.10
and libv8 7.3.492.27
worked like a charm.
Upvotes: 0
Reputation: 11
In my case I resolved this situation by requiring
'mini_racer', '~> 0.2.6'
in my Gemfile
Then bundle install command worked.
Upvotes: 1
Reputation: 3238
found this on github
assuming you have tried the mentioned steps above, installed v8-315 and v8 via brew.
brew unlink v8
brew link --force v8-315
gem install therubyracer -v '0.12.2' -- --with-system-v8
Upvotes: 4
Reputation: 2030
i feel this has less to do with libv8 and more to do with therubyracer.
i received your same error while running a bundle install on a rails app. if you have encountered this similarly, try installing the gem outside of bundle like so:
gem install therubyracer
then run bundle install. i hope this works for you too.
Upvotes: 0
Reputation: 1587
Resolved libv8 3.16.14.7
issue using below command:
gem install libv8 -v '3.16.14.7' -- --with-system-v8
And then bundle install
successfully completed.
Upvotes: 0
Reputation: 8065
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.
Upvotes: 1
Reputation: 77
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
Upvotes: 4
Reputation: 4328
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
Upvotes: 55
Reputation: 2229
I encountered similar issue in which after installing libv8, error occurs installing therubyracer. Here is my solution:
$ gem install libv8 -v '3.16.14.3' -- --with-system-v8
$ bundle install
-- see error installing therubyracer --
$ gem uninstall libv8
$ brew install v8
$ gem install therubyracer
$ bundle install
-- see error installing libv8 --
$ gem install libv8 -v '3.16.14.3' -- --with-system-v8
Upvotes: 163
Reputation: 2764
That works for me. Put that in your Gemfile
gem 'libv8', '~>3.16.14.7'
Upvotes: 2
Reputation: 9995
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
Upvotes: 637
Reputation: 697
Try with
gem "therubyracer", "~> 0.10.2" to Gemfile
And it will install dependent gem libv8 (3.3.10.4) and the issue of build gem native extension failure got resolve.
Upvotes: 0
Reputation: 3103
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
Upvotes: 6
Reputation: 10996
I do not think you need therubyracer
gem on windows. It is a javascript runtime using V8 engine. Hence it is making an attempt to install libv8
.
You can safely remove the gem from your Gemfile.
Rails is happy to use which ever runtime it can find. execjs
,nodejs
etc. are all possible options.
Microsoft already embeds JScript runtime for javascript on windows, and Rails uses it. See this for more
Upvotes: 7