web-dev-qa-db-fra.com

Erreur lors de l'installation de libv8: ERREUR: échec de la création de l'extension native de gem

J'ai fait un projet Rails avec,

Rails new test_bootstrap.

réussi.

déplacé dans le répertoire du projet et ajouté les gemmes

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

et courir 

bundle install

après cela, j'ai cette erreur.

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.

désolé pour certains Coréens. Il dit, il ne peut pas trouver le chemin choisi ou quelque chose comme ça.

et j'ai essayé d'exécuter cette commande 

gem install libv8 -v '3.16.14.3' 

jeter la même erreur.

157
Canna

essaye celui-là:

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

Note: Comme libv8 est l'interface du moteur V8 utilisé par therubyracer, vous devrez peut-être utiliser libv8, même si la version 8 est déjà installée. Si vous souhaitez utiliser votre propre installation V8, plutôt que de l'avoir construite pour vous, utilisez l'option --with-system-v8.

Pour plus d'informations, vous pouvez consulter la documentation de libv8 sur github

555
Gopal S Rathore

Comment résoudre le problème libv8/therubyracer

J'ai rencontré un problème similaire dans lequel après l'installation de libv8, une erreur survient lors de l'installation de therubyracer. Voici ma solution:

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

$ bundle install

- voir erreur d'installation de therubyracer -

$ gem uninstall libv8

$ brew install v8

$ gem install therubyracer

$ bundle install

- voir l'erreur d'installation de libv8 -

$ gem install libv8 -v '3.16.14.3' -- --with-system-v8
141
Arpit Shah

Avec homebrew, cela m'aide à résoudre cette erreur.

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

Vu sur les problèmes de rubyracer Github. 

41
coding addicted

J'ai essayé la solution listée ci-dessus qui a l'air très bien pour l'installation de gem individuel, mais pour les utilisateurs de bundler - vous devriez utiliser la configuration de bundle

Utilisation 

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

et

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

configurer bundler pour prendre les paramètres à utiliser lors de l'installation de gem spécifique

28
Anand Chavan

Je ne pense pas que vous ayez besoin de therubyracer gem sur windows. C'est un runtime javascript utilisant le moteur V8. Par conséquent, il tente d'installer libv8.

Vous pouvez supprimer en toute sécurité la gemme de votre Gemfile. 

Rails est heureux d'utiliser le temps d'exécution qu'il peut trouver. execjs, nodejs etc. sont toutes les options possibles. 

Microsoft intègre déjà le moteur d’exécution JScript pour JavaScript sur Windows et Rails l’utilise. Voir cela pour plus

7
Litmus

Une autre solution pour résoudre le problème consiste à les séparer dans le fichier Gemfile.

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

Et puis exécutez la commande bundle: bundle install --without production

5
Arman Ortega

Mon problème n'était pas lié à therubyracer du tout juste libv8 gem et comme @ rishav-bhardwaj a souligné --with-system-v8 n'a pas fait l'affaire, mais j'ai dû exécuter 

bundle update

puis

bundle install

et enfin

Bundle complete!

L'erreur est partie!

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.

2
d1jhoni1b

J'ai également été incapable d'installer cette gemme au lieu d'utiliser

--with-system-v8

une fois essayer de faire bundle update qui a bien fonctionné pour moi

2
Rishav Bhardwaj

je pense que cela a moins à voir avec libv8 qu'avec plutot avec therubyracer.

j'ai reçu votre même erreur lors de l'exécution d'une installation groupée sur une application Rails. Si vous avez rencontré le même problème, essayez d'installer la gemme en dehors du paquet de la manière suivante:

gem install therubyracer

puis lancez bundle install. J'espère que cela fonctionne pour vous aussi.

0
Sean McMills

Essayer avec

gemme "therubyracer", "~> 0.10.2" à Gemfile 

Et il installera gem dépendant libv8 (3.3.10.4) et le problème de l’échec de l’extension native du gem de construction sera résolu.

0
rahul patil

Ça marche pour moi. Mettez ça dans votre Gemfile

gem 'libv8', '~> 3.16.14.7'

0
Hrk

Problème libv8 3.16.14.7 résolu à l'aide de la commande ci-dessous:

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

Et puis bundle install terminé avec succès.

0
Faisal Raza