Ich versuche, die folgenden Gem-Versionen auf Mavericks zu installieren
- libv8 (3.16.14.3)
- Therubyracer (0.12.1)
Offensichtlich hängt der Edelsteinraub von libv8 ab.
1) Installieren von libv8
Was ist libv8? Meine Recherchen scheinen darauf hinzudeuten, dass es sich um eine Art Javascript-Bibliothek handelt, die von Google Chrome verwendet wird.
Ich hatte Probleme bei der Installation, aber dieser großartige Beitrag enthielt sowohl meinen Fehler als auch eine gut erläuterte Antwort zur Umgehung.
Also installierte ich libv8
mit
gem install libv8 -- --with-system-v8
Ich verstehe, dass dies das Gem installiert, aber meine lokale Systeminstallation der v8-Bibliothek anstelle von ... der Version verwendet, die mit dem Gem geliefert wird? In jedem Fall war es erfolgreich.
2) Installieren des Therubyracers
Im nächsten Schritt hatte ich Probleme, Gem zu installieren therubyracer
. Ich bin mir nicht ganz sicher, was dieses Juwel macht, nur dass es eine Abhängigkeit von einem Rails-Projekt ist, das ich versuche bundle install
.
Es gibt mir den folgenden Fehler:
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
Soweit ich das beurteilen kann, habe ich mich für die Installation libv8
mit meiner lokalen V8-Bibliothek anstelle der mitgelieferten entschieden libv8
, aber jetzt konnte die lokale Installation nicht gefunden werden.
- Wie überprüfe ich, ob V8 tatsächlich installiert ist und wie finde ich es?
- Ich habe einige der angegebenen Flags ausprobiert. Keines von ihnen schien das Juwel auf das richtige Installationsverzeichnis zu verweisen
- Dies mag ein separates Thema sein, aber was ist das
extconf.rb
? Ich habe es an einigen Stellen gesehen. Und was versucht esgcc
konkret mit dem Compiler zu tun ?
Vielen Dank!!
BEARBEITEN:
Ich habe diese Lösung ausprobiert, libv8 zu deinstallieren und über neu zu installieren
brew install
. Es wurde auch in einigen ähnlichen Fragen erwähnt. Kein Glück.Ich habe auch versucht , die
CC
,CXX
undCPP
Umgebungsvariablen , wie hier , obwohl ich glaube nicht , dass irgendeine Wirkung hat , wie es bereits meinen picking up -gcc v4.6
Compiler.
quelle
Antworten:
Diese Schritte haben bei mir funktioniert.
Betriebssystem: Maverick Ruby: 2.1.1
gem uninstall libv8 gem install therubyracer -v '0.11.3' gem install libv8 -v '3.11.8.13' -- --with-system-v8
quelle
Für diejenigen, die mit diesem Problem in OS X El Capitan konfrontiert sind , hat diese Lösung aus einem Therubyracer-Problem-Thread letztendlich für mich funktioniert:
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
Ich war auch schon früher gelaufen
brew install gcc
, bin mir aber nicht sicher, ob dies tatsächlich notwendig war.quelle
gem install libv8 -v 'A.B.C.D'
entsprechend tun. Es ist der 3.16.14.15 zum Zeitpunkt dieses Schreibens.gem install therubyracer -v 'x.x.x' -- --with-v8-dir=/usr/local/opt/v8-315
Versuchen Sie zuerst, libv8 gem zu deinstallieren, installieren Sie dann rubyracer und dann libv8
gem uninstall libv8 gem install therubyracer gem install libv8 -- --with-system-v8
quelle
libv8
bevortherubyracer
besser funktioniert.Die auf github veröffentlichte Lösung von Tertom hat es für mich gelöst, nachdem ich alle anderen Lösungen ausprobiert hatte, die zum jeweiligen Github-Problem und hier vorgeschlagen wurden.
Ich hatte genau die gleiche Systemkonfiguration.
Dies ist auf el capitan, also keine genaue Antwort auf die Frage, aber die Leute finden diese Informationen möglicherweise hilfreich.
Ich zitiere es hier zur besseren Sichtbarkeit:
quelle
bundle config build.libv8 --with-system-v8
war der Schlüssel für mich. Vielen Dank!brew link --force v8-315
hat bei mir funktioniert. 2/2020 - MacOS 10.15.3. - Ruby Version 1.9.3 - Bundler 1.16.4 - libv8 Version 13.16.14.19Für alle, die MacOS 10.15 verwenden, hat sich Brew geändert, sodass Sie diese Befehle ausführen müssen.
brew install v8@3.15 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
quelle
Die obigen Antworten haben bei mir nicht funktioniert; Meine Bundler-Konfiguration wurde
disable-shared-gems
aktiviert, was zusätzliche Probleme verursacht.Ich verwende Yosemite 10.10.1, Rails 3.2.x und Ruby 1.9.3p550.
Das folgende Snippet in meinem
bin/setup
hat das Problem für mich behoben.if ! bundle show therubyracer; then bundle config build.libv8 --with-system-v8 gem install --install-dir vendor/bundle libv8 -v 3.16.14.7 gem install libv8 -v 3.16.14.7 gem install --install-dir vendor/bundle therubyracer fi
quelle
Ich habe eine Problemumgehung für das oben genannte Problem gefunden.
Dies ist eher eine Kompatibilität zwischen libv8 und therubyracer.
gem install libv8 -v '3.3.10.4' -- --with-system-v8 gem install therubyracer -v '0.10.2'
Dies sollte gut funktionieren, da beide Versionen mit mir kompatibel sind. Anfangs habe ich versucht, die Version 0.12.0 für Therubyracer zu installieren, und war mit dem Problem konfrontiert. Nachdem ich auf Version 0.10.2 umgestellt hatte, funktionierte alles einwandfrei.
Mein aktuelles Betriebssystem: Mavericks
quelle
Ich habe dieses Problem für
MacOS Mojave 10.14.2
und konnte dieses Problem beheben, als ich herausfand, wo das Paketv8-315
installiert war und wie der Ordnername lautete. In meinem Fall war es hier/usr/local/opt/[email protected]
.Um dies zu beheben, habe ich als nächstes ausgeführt:
brew install v8-315 gem install libv8 -v '3.16.14.15' -- --with-system-v gem install therubyracer -v '0.12.2' -- --with-system-v8 --with-v8-dir=/usr/local/opt/[email protected] bundle install
quelle
Nachdem ich mir fast zwei Tage lang den Kopf gebrochen hatte, funktionierte das für mich.
rvm install 2.2.2 gem install rails bundle install
quelle
Ich konnte therubyracer aufgrund der libv8-Abhängigkeit trotz der Installation von x64 (64-Bit-Variante) von libv8 nicht dazu bringen, auf macOS Catalina 10.15 aufzubauen.
Die Lösung für mich war, von therubyracer zu mini_racer zu wechseln, das Juwel mini_racer zu installieren (ohne lokal bauen zu müssen) und, hey presto! Ich könnte weitermachen
Versuch es!
quelle
In meinem Fall
MacOS: Catalina , Ruby: 2.3.3 , Verwenden von rbenv (nicht RVM), I Erforderliche Therubyracer-Version: 0.12.3 (spielt keine Rolle)
Ich habe die ganze Lösung ausprobiert, aber was für mich funktioniert hat, liebe pls, kopiere nicht blind die Einfügelösung (bcz habe ich in meinem Fall gemacht), lese zuerst und ändere dann die Versionen in den folgenden Befehlen, wenn du welche brauchst. Die meisten Befehle sind in den meisten vorhandenen Antworten üblich, aber was für mich funktioniert hat,
gem install therubyracer -- --with-v8-dir=$(brew --prefix v8-315)
anstattgem install therubyracer -- --with-v8-dir=/usr/local/opt/v8-315
Danke an Junji Zhi für seinen Kommentar in dieser Antwort1. brew install gcc 2. brew tap homebrew/versions (If it wont work then below 2 steps, for latest MacOS version) 2.a. brew tap brewsci/bio 2.b. brew tap brewsci/science 3. brew install v8-315 (uninstall if v8 installed previously without '-315') 4. gem install libv8 -v '3.16.14.19' -- --with-system-v8 (Be careful with the libv8 version mentioned in this command, replace version number with one required) 5.a. gem install therubyracer -- --with-v8-dir=/usr/local/opt/v8-315 (If it does not work then try below one, In my case below command worked) 5.b. gem install therubyracer -- --with-v8-dir=$(brew --prefix v8-315)
Fertig, dann fahren Sie mit Ihrem fort
bundle install
Hinweis : Überprüfen Sie während der Installation von therubyracer durch gem , welche Version von libv8 installiert wird. Wenn sie sich von der in Schritt 4 genannten unterscheidet , wird Ihr therubyracer möglicherweise nicht installiert. Führen Sie also nur eine Sache aus und
gem uninstall libv8
wiederholen Sie Schritt 4 durch Ändern die Version , was Sie in der Konsole sehen können, während Sie therubyracer installierenquelle
Das hat bei mir funktioniert:
gem install libv8 -v '3.16.14.17' -- --with-system-v8 brew install v8-315 gem install therubyracer -v '0.12.3' --source 'http://rubygems.org/' -- --with-v8-dir='/usr/local/opt/[email protected]'
Überprüfen Sie für den letzten Befehl die Ausgabe von
brew --prefix v8-315
in meinem Fall war es/usr/local/opt/[email protected]
.quelle
Mir ist aufgefallen, dass wir auf ein Problem stoßen:
Gem::Ext::BuildError: ERROR: Failed to build gem native extension
Sie sollten dann build-essential installieren
sudo apt install build-essential
Es funktioniert bei den Installationsproblemen von mini_race.
quelle
Ich habe gerade ein Bundle-Update ausgeführt und es hat bei mir funktioniert.
Obs.: Mit Ruby 2.3.0
quelle