therubyracer - Gem :: Ext :: BuildError: FEHLER: Fehler beim Erstellen einer gem-nativen Erweiterung
Ich versuche zu installieren die folgenden Edelstein-Versionen auf Mavericks
- libv8 (3.16.14.3)
- therubyracer (0.12.1)
Offensichtlich therubyracer Edelsteine hängt von libv8.
1) die Installation von libv8
Was ist libv8? Meine wenig von der Forschung scheint zu indicaite es ist eine Art von javascript-Bibliothek verwendet, die von Google Chrome?
Ich hatte Schwierigkeiten, es zu installieren, aber diesen tollen Beitrag hatte beide, mein Fehler und eine gut erklärte Antwort, wie man es umgehen.
Also habe ich installiert libv8
mit
gem install libv8 -- --with-system-v8
Es ist mein Verständnis, dass dies installiert den Edelstein benutzt aber meinem lokalen system installation der v8-Bibliothek statt... die version, die kommt mit dem Juwel? So oder so, es war erfolgreich.
2) Installieren therubyracer
Während der nächste Schritt, ich hatte Mühe, installieren therubyracer
gem. Ich bin mir nicht ganz sicher, was dieses Juwel hat, nur, dass es eine Abhängigkeit von einer rails-Projekt, das ich bin versucht zu bundle install
.
Es gibt mir die folgende Fehlermeldung:
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
/Users/jeeves.butler/.rvm/rubies/ruby-1.9.2-p290/bin/ruby extconf.rb
checking for main() in -lpthread... yes
checking for main() in -lobjc... yes
checking for v8.h... no
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers. Check the mkmf.log file for more
details. You may need configuration options.
Provided configuration options:
--with-opt-dir
--with-opt-include
--without-opt-include=${opt-dir}/include
--with-opt-lib
--without-opt-lib=${opt-dir}/lib
--with-make-prog
--without-make-prog
--srcdir=.
--curdir
--ruby=/Users/jeeves.butler/.rvm/rubies/ruby-1.9.2-p290/bin/ruby
--with-pthreadlib
--without-pthreadlib
--with-objclib
--without-objclib
--enable-debug
--disable-debug
--with-v8-dir
--without-v8-dir
--with-v8-include
--without-v8-include=${v8-dir}/include
--with-v8-lib
--without-v8-lib=${v8-dir}/lib
/Users/jeeves.butler/.rvm/gems/ruby-1.9.2-p290/gems/libv8-3.16.14.3/ext/libv8/location.rb:50:in
'configure': You have chosen to use the version of V8 found
on your system (Libv8::Location::System::NotFoundError)
and *not* the one that is bundled with the libv8 rubygem. However,
it could not be located. please make sure you have a version of
v8 that is compatible with 3.16.14.3 installed. You may
need to special --with-v8-dir options if it is in a non-standard
location
thanks,
The Mgmt
from /Users/jeeves.butler/.rvm/gems/ruby-1.9.2-p290/gems/libv8-3.16.14.3/lib/libv8.rb:7:in `configure_makefile'
from extconf.rb:32:in `<main>'
extconf failed, exit code 1
Gem files will remain installed in /Users/jeeves.butler/.rvm/gems/ruby-1.9.2-p290/gems/therubyracer-0.12.1 for inspection.
Results logged to /Users/jeeves.butler/.rvm/gems/ruby-1.9.2-p290/extensions/x86_64-darwin-13/1.9.1/therubyracer-0.12.1/gem_make.out
Von dem, was ich sammeln können, die ich wählte zu installieren libv8
mit meinem lokalen V8-Bibliothek statt, was war mit libv8
aber jetzt, dass die lokale installation konnte nicht gefunden werden.
- Wie kann ich überprüfen, ob ich tatsächlich V8 installiert und wie finde ich es?
- Ich habe versucht ein paar von den angegebenen flags, keiner von Ihnen schien den Stein an die richtige Installationsverzeichnis
- Könnte dies ein separates Thema, aber was ist
extconf.rb
? Ich habe gesehen, dass es in ein paar Plätze. Und was versucht es zu tun mit dergcc
compiler in bestimmten?
Dank!!
EDIT:
- Versuchte ich diese Lösung der deinstallation von libv8 und re-Installation über
brew install
. Es wurde erwähnt, in ein paar ähnliche Fragen. Kein Glück. - Ich habe auch versucht, die
CC
CXX
undCPP
Umgebungsvariablen wie beschrieben hierobwohl ich nicht glaube, dass hat keine Auswirkungen, da war es schon hob meinegcc v4.6
compiler.
InformationsquelleAutor der Frage user2490003 | 2014-05-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Diese Schritte für mich gearbeitet.
OS: Maverick
Ruby: 2.1.1
InformationsquelleAutor der Antwort rider_on_rails
Für diejenigen, die mit diesem problem konfrontiert in OS X El Capitan, diese Lösung von einem therubyracer Problem-thread war, was schließlich für mich gearbeitet:
Hatte ich auch laufen
brew install gcc
vor, aber ich bin mir nicht sicher, ob dies war in der Tat notwendig.InformationsquelleAutor der Antwort Andy Stuhl
Versuchen Sie zuerst zu deinstallieren Edelstein libv8, dann installieren rubyracer, und dann libv8
InformationsquelleAutor der Antwort Nikhil
Tertom ist Lösung veröffentlicht auf github gelöst es für mich, nachdem er versucht alle anderen vorgeschlagenen Lösungen auf die jeweiligen github issue und hier.
Ich hatte das exakt gleiche system Konfiguration.
Das ist am el capitan, nicht so eine genaue Antwort auf die Frage, aber die Leute finden diese Informationen hilfreich.
Ich bin zitiert es hier für die Sichtbarkeit:
InformationsquelleAutor der Antwort jottr
Den obigen Antworten nicht für mich arbeiten; meine bundler config hat
disable-shared-gems
aktiviert, die bewirkt, dass zusätzliche Probleme.Ich bin mit Yosemite 10.10.1, Rails 3.2.x, Ruby 1.9.3p550.
Folgende snippet in meinem
bin/setup
behoben hat das Problem für mich.InformationsquelleAutor der Antwort iloveitaly
Ich fand eine Abhilfe für das oben genannte problem.
Dies ist eher eine Kompatibilität zwischen libv8 und therubyracer.
Dies sollte funktionieren, da beide Versionen sind kompatibel mit mir. Anfangs war ich versucht zu installieren, die version 0.12.0 für therubyracer und Stand vor dem Problem. Einmal wechselte ich auf die version 0.10.2, alles hat gut funktioniert.
Mein Aktuelles OS: Mavericks
InformationsquelleAutor der Antwort arpiagar
Nach dem brechen meinen Kopf für fast zwei Tage, das für mich gearbeitet.
InformationsquelleAutor der Antwort Sunil Sharma
Bemerkte ich, dass, wenn wir auf ein problem stoßen:
Sollten Sie dann install build-essential
Klappt es bei mir mit mini_race die Probleme bei der installation.
InformationsquelleAutor der Antwort Adi
Ich einfach laufen bundle-update, und es funktionierte für mich.
Obs.: Mit Ruby-2.3.0
InformationsquelleAutor der Antwort Thiago Rodrigues