it-swarm.com.de

Fehler beim Installieren von libv8: FEHLER: Die native Erweiterung von Gem konnte nicht erstellt werden

Ich habe ein Rails-Projekt mit gemacht,

Rails new test_bootstrap.

gelungen.

in das Projektverzeichnis verschoben und die Edelsteine ​​hinzugefügt

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

und Renn 

bundle install

danach habe ich diesen fehler.

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.

entschuldigung für einige Koreaner. Es sagt, es kann den gewählten Weg oder so etwas nicht finden.

und ich habe versucht, diesen Befehl auszuführen 

gem install libv8 -v '3.16.14.3' 

den gleichen Fehler werfen.

157
Canna

probier diese:

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

Note: Da libv8 die Schnittstelle für die von therubyracer verwendete V8-Engine ist, Sie müssen möglicherweise libv8 verwenden, auch wenn Sie bereits V8 installiert haben. Ob Sie möchten Ihre eigene V8-Installation verwenden, anstatt sie zu bauen Verwenden Sie für Sie die Option --with-system-v8.

Für mehr können Sie die Dokumentation von libv8 auf github durchgehen.

555
Gopal S Rathore

Wie man das Problem mit libv8/therubyracer löst

Ich bin auf ein ähnliches Problem gestoßen, bei dem nach der Installation von libv8 ein Fehler bei der Installation von therubyracer auftritt. Hier ist meine Lösung:

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

$ bundle install

- siehe Fehler bei der Installation von Therubyracer -

$ gem uninstall libv8

$ brew install v8

$ gem install therubyracer

$ bundle install

- siehe Fehler bei der Installation von libv8 -

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

Mit Homebrew hilft mir das, diesen Fehler zu beheben.

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

Bei Rubyracer Github-Problemen zu sehen. 

41
coding addicted

Ich habe den oben aufgelisteten Befehl ausprobiert, der für die Installation einzelner Gem sehr gut aussieht, aber für Bundler-Benutzer sollten Sie Bündel-Konfiguration verwenden

Benutzen 

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

und

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

konfigurieren Sie den Bundler so, dass er die Parameter übernimmt, die bei der Installation eines bestimmten gem verwendet werden

28
Anand Chavan

Ich denke nicht, dass Sie therubyracer gem unter Windows brauchen. Es ist eine Javascript-Laufzeit mit V8-Engine. Daher versucht es, libv8 zu installieren.

Sie können den Edelstein sicher aus Ihrem Gemfile entfernen. 

Rails verwendet gerne die Laufzeit, die es finden kann. execjs, nodejs usw. sind alle möglichen Optionen. 

Microsoft integriert bereits die JScript-Laufzeit für Javascript unter Windows, und Rails verwendet es. Sehen Sie dies für mehr

7
Litmus

Eine andere Problemumgehung zur Behebung des Problems besteht darin, sie in der Gemfile-Datei zu trennen

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

Führen Sie dann den Bundle-Befehl aus: Bundle installieren --without production

5
Arman Ortega

Mein Problem hatte nichts mit therubyracer zu tun, nur libv8 gem und als @ rishav-bhardwaj darauf hinwies --with-system-v8 nicht den Trick, stattdessen musste ich exec ausführen 

bundle update

dann

bundle install

und schlussendlich

Bundle complete!

Der Fehler ist weg!

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

Ich konnte dieses Juwel auch nicht installieren, anstatt es zu benutzen

--with-system-v8

einmal versuchen, Bundle Update zu machen was für mich gut funktionierte

2
Rishav Bhardwaj

ich glaube, das hat weniger mit libv8 zu tun als mit therubyracer.

ich habe dieselbe Fehlermeldung erhalten, als ich eine Bundle-Installation auf einer Rails-App durchführte. Wenn Sie dies in ähnlicher Weise festgestellt haben, installieren Sie den Juwel außerhalb des Bundles wie folgt:

gem install therubyracer

führen Sie dann die Bundle-Installation aus. Ich hoffe das funktioniert auch für dich.

0
Sean McMills

Versuche es mit

gem "therubyracer", "~> 0.10.2" nach Gemfile 

Und es wird das abhängige gem libv8 (3.3.10.4) installieren, und das Problem des nativen Erweiterungsausfalls von build gem wurde behoben.

0
rahul patil

Das ist für mich in Ordnung. Legen Sie das in Ihr Gemfile

gem 'libv8', '~> 3.16.14.7'

0
Hrk

Problem mit libv8 3.16.14.7 mit folgendem Befehl behoben:

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

Und dann bundle install erfolgreich abgeschlossen.

0
Faisal Raza