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.
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.
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
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.
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
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
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
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.
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
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.
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.
Das ist für mich in Ordnung. Legen Sie das in Ihr Gemfile
gem 'libv8', '~> 3.16.14.7'
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.