Wie installiere ich Therubyracer Gem auf 10.10 Yosemite?

97

Ich schaffe es nicht, Therubyracer Gem auf Yosemite 10.10 zu installieren.

Hier ist das Protokoll:

11:53 $ gem install libv8 -v '3.16.14.3' - --with-system-v8


Erstellen nativer Erweiterungen mit: '--with-system-v8'
Dies könnte eine Weile dauern ...
Libv8-3.16.14.3 wurde erfolgreich installiert
Analysedokumentation für libv8-3.16.14.3
Installieren der ri-Dokumentation für libv8-3.16.14.3
Die Installation der Dokumentation für libv8 ist nach 0 Sekunden abgeschlossen
1 Edelstein installiert


02:05 $ gem install therubyracer -v '0.12.1' - --with-system-v8


Erstellen nativer Erweiterungen mit: '--with-system-v8'
Dies könnte eine Weile dauern ...
FEHLER: Fehler beim Installieren des Trubelracers:
    FEHLER: Fehler beim Erstellen der nativen Erweiterung für Edelsteine.

    /usr/local/var/rbenv/versions/2.1.2/bin/ruby extconf.rb --with-system-v8
nach main () in -lpthread suchen ... ja
nach main () in -lobjc suchen ... ja
nach v8.h suchen ... nein
*** extconf.rb fehlgeschlagen ***
Makefile konnte aus irgendeinem Grund nicht erstellt werden, wahrscheinlich mangels notwendig
Bibliotheken und / oder Header. Überprüfen Sie die Datei mkmf.log auf weitere Details. Du darfst
Konfigurationsoptionen benötigen.

Bereitgestellte Konfigurationsoptionen:
    --with-opt-dir
    --ohne Opt-Dir
    --with-opt-include
    --without-opt-include = $ {opt-dir} / include
    --with-opt-lib
    --without-opt-lib = $ {opt-dir} / lib
    --mit Make-Prog
    --ohne Make-Prog
    --srcdir =.
    --curdir
    --ruby = / usr / local / var / rbenv / version / 2.1.2 / bin / ruby
    --with-pthreadlib
    --without-pthreadlib
    --with-objclib
    --ohne-objclib
    --enable-debug
    --disable-debug
    --with-v8-dir
    --ohne-v8-dir
    --with-v8-include
    --without-v8-include = $ {v8-dir} / include
    --with-v8-lib
    --without-v8-lib = $ {v8-dir} / lib
/usr/local/var/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/libv8-3.16.14.3/ext/libv8/location.rb:50:in `configure ': Sie haben ausgewählt, um die auf Ihrem System gefundene Version von V8 zu verwenden (Libv8 :: Location :: System :: NotFoundError)
und * nicht * derjenige, der mit dem libv8 rubygem gebündelt ist. Jedoch,
es konnte nicht gefunden werden. Bitte stellen Sie sicher, dass Sie eine Version von haben
v8, das mit 3.16.14.3 kompatibel ist, installiert. Du darfst
müssen spezielle --with-v8-dir-Optionen verwenden, wenn es sich um einen Nicht-Standard handelt
Ort

Vielen Dank,
Die Mgmt

    von /usr/local/var/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/libv8-3.16.14.3/lib/libv8.rb:7:in `configure_makefile '
    von extconf.rb: 32: in `'

extconf fehlgeschlagen, Code 1 beenden

Gem-Dateien bleiben zur Überprüfung in /usr/local/var/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/therubyracer-0.12.1 installiert.
Ergebnisse protokolliert unter /usr/local/var/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/extensions/x86_64-darwin-14/2.1.0-static/therubyracer-0.12.1/gem_make. aus
Nicolas Blanco
quelle
Auch Sie haben Probleme mit Yosemite: D
Dalorzo
Ich weiß, ich mag es, ein Abenteurer zu sein :-P
Nicolas Blanco
1
Ich habe auch Probleme damit. Ich habe auch versucht, Brew Install V8 zu machen, aber es hat nicht funktioniert
Akrogenese
@ Sandelius überprüfen Sie meine Antwort
mmln

Antworten:

68
git clone https://github.com/cowboyd/libv8.git
cd libv8
bundle install
bundle exec rake clean build binary
gem install pkg/libv8-3.16.14.3-x86_64-darwin-12.gem #note that libv8 version may change, so tab through files in pkg/, also remember to use the one with version specified

Dann bündeln Sie einfach Ihre Projektedelsteine

Dies ist der einzige Weg, wie es für mich am 10.10 (Ruby 2.1.2) funktioniert hat.

mmln
quelle
2
danke aber das ist libv8, ich habe von therubyracer gem gesprochen.
Nicolas Blanco
2
Dies ist, was Sie brauchen, um Probleme mit Therubyracer zu vermeiden
mmln
2
Es ist mir egal, ob ich gegen die Regeln verstoße. Ich kann dir nicht genug danken. Sie haben mir einen riesigen Projekttermin erspart.
AKWF
1
Danke, es funktioniert für mich, nur für Leute wie mich zum Kopieren / Einfügen, wir sind jetzt bei gem install pkg / libv8-3.16.14.7-x86_64-darwin-14.gem
Christophe Dufour
2
Es ist auch erwähnenswert, dass, wenn Sie eine Gemfile verwenden und immer noch Probleme bei der Installation von therubyracer haben, dies wahrscheinlich daran liegt, dass der Gemfile.lock bereits eine andere Version von libv8 hinzugefügt wurde. gem 'libv8', '3.16.14.3'Fügen Sie einfach hinzu (oder was auch immer die genaue Version von libv8 ist, die Sie gerade manuell installiert haben) und führen Sie das Bundle-Update libv8 aus. Das sollte dann therubyracer installieren.
Jon Cairns
257
gem uninstall libv8
brew install v8
gem install therubyracer
gem install libv8 -v '3.16.14.3' -- --with-system-v8

Dies ist der einzige Weg, wie es für mich am 10.10 (Ruby 2.1.2) funktioniert hat.

Oder versuchen Sie gem install libv8 -v 'XX.XX.XX' -- --with-system-v8, die Version des Edelsteins hinzuzufügen :)

UPDATE für Mac OS Catalina:

brew tap homebrew/versions
brew install v8@3.15
brew link --force v8@3.15
gem install libv8 -v 'XX.XX.XX' -- --with-system-v8
gem install therubyracer
Wylkon
quelle
3
Ja, dies ist derjenige, der ohne Verrücktheit hilft. Auch wenn Sie möglicherweise nur einen libv8-Fehler erhalten, tun Sie dies! Vielen Dank.
pjammer
2
Ja. Dies ist der richtige Weg. Insbesondere, wenn Sie Ihren Ruby mit den neuesten 10.10-Befehlszeilentools neu erstellt haben.
Pankaj Tyagi
3
Arbeitete für mich mit Ruby 2.1.3 in OS X Yosemite.
Sarah Vessels
4
Wenn Sie einen Bundler verwenden und über eine Gem-Datei verfügen, müssen Sie diese möglicherweise an die neueste Version anpassen, die Sie gerade installiert haben. Zum Beispiel musste ich (unter OS X Yosemite) Folgendes tun: gem 'therubyracer', '0.12.1'(Version hinzugefügt). Dann Gemfile.lock entfernt und getan bundle install. Es funktioniert gut.
paneer_tikka
2
Dies funktionierte auch für mich bei El Capitan. Ich denke, das ist viel einfacher und sollte die akzeptierte Antwort sein.
RCD
42

Keine der Antworten funktioniert diesmal für mich. Ich habe auch dies verwendet:

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

Gesehen auf dem Rubyracer Github Fragen.

Hoffe es hilft jemand anderem.

Codierung süchtig
quelle
Danke dafür. Keiner der anderen Ansätze wird auf El Capitan mit modernen Versionen der abhängigen Edelsteine ​​funktionieren. (Therubyracer ist zu diesem Zeitpunkt traurig hinter libv8.)
Matt Mitchell
Leider hast du recht ... Dieser Fehler macht mich jedes Mal verrückt, wenn ich die Ruby-Version ändere.
Codierung süchtig
1
Tap Homebrew / Versionen ist jetzt veraltet, so dass dies nicht mehr funktioniert.
Mattp
1
Funktioniert eigentlich gem install therubyracer -- --with-v8-dir=$(brew --prefix v8-315)besser für mich. Das Verzeichnis in meinem Mac ist eigentlich/usr/local/opt/[email protected]
Junji Zhi
@JunjiZhi bro Ihre Lösung hat bei mir
funktioniert
26

Vielleicht ist es für jemanden nützlich, aber ich hatte Probleme bei der Installation von therubyracer (aufgrund der Probleme mit libv8). Die Lösung bestand darin, alle von mir installierten libv8 zu deinstallieren . Installieren Sie den Strahler

$ gem uninstall libv8
$ gem install therubyracer -v '0.12.0'
Fetching: libv8-3.16.14.7-x86_64-darwin-14.gem ( 57%)
Fetching: libv8-3.16.14.7-x86_64-darwin-14.gem (100%)
Successfully installed libv8-3.16.14.7-x86_64-darwin-14
Building native extensions.  This could take a while...
Successfully installed therubyracer-0.12.0
2 gems installed

Ich hoffe das hilft jemandem.

Jakub Troszok
quelle
Das scheint bei mir funktioniert zu haben. Ich möchte jedoch darauf hinweisen, dass der beste Weg, um alle Versionen des libv8-Gems zu deinstallieren, ist : gem uninstall libv8 -a -x. Wenn Sie einen Ruby-Versionsmanager verwenden (z. B. rbenvusw.), funktioniert dies nur für Ihre aktuelle Ruby-Version (falls dies nicht offensichtlich war).
Xentek
👍 Diese Lösung hat bei mir funktioniert - El Capitan 10.11.6, Ruby - Ruby 1.9.3p448 (27.06.2013 Revision 41675)
sameera207
13

Es scheint, dass dies stromaufwärts behoben wurde. Was für mich und @aurels und @Mike Causer und @Juanda funktioniert hat war:

bundle update libv8
Martin T.
quelle
7

Dies funktionierte sehr gut für mich auf meinem Yosemite und Ruby 2.1.5 (Ruby durch RVM)

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

Früher gab es mir einen Fehler Gem::Ext::BuildError: ERROR: Failed to build gem native extension.für libv8 gem Version 3.16.14.3

Rohan Daxini
quelle
6

Ich konnte danach mit Ruby Racer weitermachen rm Gemfile.lock

vorher: ich habe v8 via installiert brew install v8und dann getangem install libv8 -v '3.16.14.3' -- --with-system-v8

und ich laufe 10.10 Yosemite

CloudMagick
quelle
6

Nur das funktioniert bei mir in meinem Yosemite, Ruby 2.1.2:

gem install libv8 -v '3.16.14.3' -- --with-system-v8
brew link --overwrite v8-315 --force
gem install therubyracer -v '0.12.2' -- --with-system-v8
Aquajach
quelle
4

Sie haben dieses Problem in der neuesten Version von libv8 behoben. Siehe: https://github.com/cowboyd/libv8/issues/123

Sie sollten vom Github-Repo aus installieren. In Schienen habe ich meinem Gemfile eine Zeile wie diese hinzugefügt gem "libv8", git: "git://github.com/cowboyd/libv8.git", submodules: true

BEARBEITEN:

Dies löst anscheinend nur einen Teil des Problems. Ich habe die neue Version von libv8 installiert, aber jetzt sucht der Rubyracer immer noch nach der anderen, die ich denke? Ich schaue immer noch hinein.

Borromakot
quelle
3

Ich hatte das gleiche Problem bei Yosemite. Meine Lösung ähnelt der oben gezeigten.

Verwenden Sie gem uninstall libv8diese Option, um eventuell installierte Elemente zu entfernen.

Lassen Sie therubyracer in Ihrer Gemfile, entfernen Sie jedoch alle expliziten Verweise auf libv8.

Ausführen bundle install.

libv8 wurde dann als Abhängigkeit einwandfrei installiert.

Martin Streicher
quelle
Das war mein Problem. Ich hatte mehrere Versionen von libv8, die sich gegenseitig bekämpften. Es war richtig, sie zu löschen und den Bundler die Abhängigkeit auflösen zu lassen.
DavidMann10k
2

Aktualisierte Antwort für 2018.

Ich bin auf High Sierra, auf Homebrew 1.6.1

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@3.15/

Hat bei mir funktioniert?

Gutschrift geht an @ coding-süchtig für seine ursprüngliche Antwort .

alexggordon
quelle
1

Nach stundenlangem Versuch, Ruby einfach zu aktualisieren, funktionierte es:

brew install ruby 

und dann Folgendes zur Gem-Datei hinzufügen:

gem 'libv8'  
gem 'therubyracer' 
Ashwin Tang
quelle
1

Ein Hinweis auf alle, die möglicherweise mein Problem hatten: Am Ende habe ich meine Ruby-Version in RVM deinstalliert und dann neu installiert. Das schien die richtigen Abhängigkeiten in der neuesten Version der xcode-Tools zum Kompilieren von Ruby zu verwenden.

rvm list
rvm uninstall ruby-x.x.x
rvm install ruby-x.x.x
Colsen
quelle
0

Ich habe folgendes getan

gem install therubyracer

die jetzt installiert, therubyracer 0.12.1die die Abhängigkeit libv8 (3.16.14.7 x86_64-darwin-14)installiert, die ohne Fehler installiert wurde.

Ich habe dies getan, mit ruby 2.1.5dem ich installiert habe über:

CC=/usr/bin/gcc rbenv install 2.1.5

was ich nach dem rennen gemacht habe brew upgrade ruby-builds .

Nach der Installation ruby 2.1.5lief ich auch

gem upgrade --system

bekommen rubygems-update 2.4.5

Chris Beck
quelle
0

Dies geschieht auch aufgrund einiger Konflikte mit libv8, obwohl Sie dem Rubyracer einfach eine Version zuweisen können und diese installiert wird:

ändere folgendes in der gemfile:

Edelstein 'Therubyracer', '~> 0.12.1'

und Bundle installieren

abcd_win
quelle
0

Diese Lösung funktionierte für mich nach der obigen Lösung von Jakub Troszok mit nur einer geringfügigen Änderung

gem uninstall libv8
gem install therubyracer -v '0.12.1'
    Fetching: libv8-3.16.14.19-x86_64-darwin-18.gem (100%)
    Successfully installed libv8-3.16.14.19-x86_64-darwin-18
    Building native extensions.  This could take a while...
    Successfully installed therubyracer-0.12.1
    Parsing documentation for libv8-3.16.14.19-x86_64-darwin-18
    Installing ri documentation for libv8-3.16.14.19-x86_64-darwin-18
    Parsing documentation for therubyracer-0.12.1
    Installing ri documentation for therubyracer-0.12.1
    Done installing documentation for libv8, therubyracer after 0 seconds
    2 gems installed
gem install libv8 -v '3.16.14.17' -- --with-system-v8  (if the libv8 version required for your project is different from the one installed by rubyracer)
bundle install
Dchhatani
quelle
Bitte weisen Sie auf die geringfügige Änderung hin und versuchen Sie zu erklären, warum sie funktioniert. Da Sie eine 4 Jahre alte Frage beantworten, sollten Sie auch einige Details zu den entsprechenden Versionen hinzufügen (Ihre Antwort war damals möglicherweise nicht relevant).
Michal
0

Die Verwendung des Homebrew-Verzeichnisses von v8 für --with-v8-dir=/usr/local/Cellar/[email protected]/3.15.11.18_1anstelle von /usr/local/opt/v8-315hat bei der Codierung der Antwort von Addicted für mich funktioniert.

Dies ist im SummaryBefehl Brew install sichtbar brew install v8-315.

Schaumstoffrolle
quelle