Come installare Therubyracer Gem su 10.10 Yosemite?


97

Non riesco a installare therubyracer gem su Yosemite 10.10.

Ecco il registro:

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


Creazione di estensioni native con: "--with-system-v8"
Potrebbe volerci un po '...
Libv8-3.16.14.3 installata con successo
Analizzare la documentazione per libv8-3.16.14.3
Installazione della documentazione di ri per libv8-3.16.14.3
Completata l'installazione della documentazione per libv8 dopo 0 secondi
1 gemma installata


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


Creazione di estensioni native con: "--with-system-v8"
Potrebbe volerci un po '...
ERRORE: errore durante l'installazione di therubyracer:
    ERRORE: creazione dell'estensione nativa gemma non riuscita.

    /usr/local/var/rbenv/versions/2.1.2/bin/ruby extconf.rb --with-system-v8
controllando main () in -lpthread ... si
controllando main () in -lobjc ... si
controllo per v8.h ... no
*** extconf.rb non riuscito ***
Impossibile creare Makefile per qualche motivo, probabilmente per mancanza del necessario
librerie e / o intestazioni. Controlla il file mkmf.log per maggiori dettagli. Potresti
occorrono opzioni di configurazione.

Opzioni di configurazione fornite:
    --with-opt-dir
    --without-opt-dir
    --with-opt-include
    --without-opt-include = $ {opt-dir} / include
    --with-opt-lib
    --without-opt-lib = $ {opt-dir} / lib
    --with-make-prog
    -senza-make-prog
    --srcdir =.
    --curdir
    --ruby = / usr / local / var / rbenv / versions / 2.1.2 / bin / ruby
    -con-pthreadlib
    -senza-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
/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 ': hai scelto di utilizzare la versione di V8 trovata sul tuo sistema (Libv8 :: Location :: System :: NotFoundError)
e * non * quello che è in bundle con libv8 rubygem. Però,
non è stato possibile localizzarlo. assicurati di avere una versione di
v8 compatibile con 3.16.14.3 installato. Potresti
bisogno di opzioni speciali --with-v8-dir se non è standard
Posizione

Grazie,
Il Mgmt

    da /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 '
    da extconf.rb: 32: in ""

extconf fallito, codice di uscita 1

I file gem rimarranno installati in /usr/local/var/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/therubyracer-0.12.1 per l'ispezione.
Risultati registrati in /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. su

Anche tu stai avendo problemi con Yosemite: D
Dalorzo

Lo so, mi piace essere un avventuriero :-P
Nicolas Blanco

1
Ho anche problemi con questo ho provato a fare anche brew install v8 ma non ha funzionato
acrogenesis

@sandelius controlla la mia risposta
mmln

Risposte:


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

quindi raggruppa le gemme del tuo progetto

questo è l'unico modo in cui ha funzionato per me su 10.10 (ruby 2.1.2)


2
grazie ma questa è libv8, stavo parlando di therubyracer gem.
Nicolas Blanco

2
questo è ciò di cui hai bisogno per evitare problemi con therubyracer
mmln

2
Non mi interessa se infrango le regole. Non posso ringraziarti abbastanza. Mi hai risparmiato un'enorme scadenza per il progetto.
AKWF

1
Grazie, funziona per me, solo per copia / incolla tipo come me, ora siamo a gem install pkg / libv8-3.16.14.7-x86_64-darwin-14.gem
Christophe Dufour

2
Vale anche la pena ricordare che se stai usando un Gemfile e hai ancora problemi con l'installazione di therubyracer, è probabilmente perché c'è una versione diversa di libv8 che è già stata aggiunta a Gemfile.lock. Basta aggiungere gem 'libv8', '3.16.14.3'(o qualunque sia la versione esatta di libv8 che hai appena installato manualmente) ed eseguire l'aggiornamento del bundle libv8. Questo dovrebbe quindi installare therubyracer.
Jon Cairns

257
gem uninstall libv8
brew install v8
gem install therubyracer
gem install libv8 -v '3.16.14.3' -- --with-system-v8

questo è l'unico modo in cui ha funzionato per me su 10.10 (ruby 2.1.2)

Oppure prova ad gem install libv8 -v 'XX.XX.XX' -- --with-system-v8aggiungere la versione della gemma :)

AGGIORNAMENTO per 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

3
Sì, questo è quello che aiuta senza stranezze. Anche se potresti ricevere un errore di libv8, fallo! Grazie.
pjammer

2
Sì. Questo è il modo giusto per farlo. Specialmente se avessi ricostruito il tuo ruby ​​con gli ultimi strumenti della riga di comando 10.10.
Pankaj Tyagi

3
Ha funzionato per me con Ruby 2.1.3 in OS X Yosemite.
Sarah Vessels

4
Oltre a questo, se stai usando un bundler e hai un Gemfile, potrebbe essere necessario adattarlo all'ultima versione che hai appena installato. Ad esempio, ho dovuto (su OS X Yosemite) fare quanto segue: gem 'therubyracer', '0.12.1'(aggiunta la versione). Quindi rimosso Gemfile.lock e lo ha fatto bundle install. Funziona bene.
paneer_tikka

2
Questo ha funzionato anche per me, su El Capitan. Penso che sia molto più semplice e dovrebbe essere la risposta accettata.
rcd

42

Nessuna delle risposte funziona per me questa volta. Anch'io ho usato questo:

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

Visto sui problemi di GitHub di rubyracer.

Spero che aiuti qualcun altro.


Grazie per questo. Nessuno degli altri approcci funzionerà su El Capitan utilizzando versioni moderne delle gemme dipendenti. (Therubyracer è tristemente dietro libv8 a questo punto.)
Matt Mitchell,

Purtroppo hai ragione ... Questo errore mi fa impazzire ogni volta che cambio versione di Ruby.
coding addicted

1
tap homebrew / versions è stato ora deprecato, quindi non funziona più.
mattp

1
In realtà, gem install therubyracer -- --with-v8-dir=$(brew --prefix v8-315)funziona meglio per me. La directory nel mio Mac è in realtà/usr/local/opt/v8@3.15
Junji Zhi il

@ JunjiZhi fratello, la tua soluzione ha funzionato per me
shubham mishra il

26

Forse sarà utile per qualcuno ma ho avuto problemi con l'installazione di therubyracer (a causa dei problemi con libv8) la soluzione era disinstallare tutte le libv8 che avevo installato. Installa therubyracer

$ 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

Spero che questo aiuti qualcuno.


Questo sembra aver funzionato per me. Tuttavia vorrei sottolineare che il modo migliore per disinstallare tutte le versioni della gemma libv8 è: gem uninstall libv8 -a -x. Se usi un gestore di versioni di ruby ​​(ad esempio rbenv, ecc.), Questo funziona solo per la tua versione corrente di ruby ​​(nel caso in cui non fosse ovvio).
xentek

👍 questa soluzione ha funzionato per me - El Capitan 10.11.6, Ruby - ruby ​​1.9.3p448 (2013-06-27 revisione 41675)
sameera207

13

Sembra che questo sia stato risolto a monte. Ciò che ha funzionato per me, @aurels e @Mike Causer e @Juanda è stato:

bundle update libv8

7

Questo ha funzionato molto bene per me sul mio Yosemite e Ruby 2.1.5 (da Ruby a RVM)

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

In precedenza mi dava un errore Gem::Ext::BuildError: ERROR: Failed to build gem native extension.per libv8 gem versione 3.16.14.3


7

Solo questo funziona per me nel mio 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

Solo questo ha risolto il problema installando rubyracer per ruby 1.9.3p484erubyracer 0.12.3
Michael Klishevich il

6

Sono stato in grado di procedere con Ruby Racer dopo rm Gemfile.lock

in anticipo: ho installato v8 tramite brew install v8, e poi l'ho fattogem install libv8 -v '3.16.14.3' -- --with-system-v8

e sto eseguendo 10.10 Yosemite


4

Hanno corretto questo problema nella versione più recente di libv8. Vedi: https://github.com/cowboyd/libv8/issues/123

Dovresti installare dal repository github, in rails ho aggiunto una riga al mio gemfile come questa gem "libv8", git: "git://github.com/cowboyd/libv8.git", submodules: true

MODIFICARE:

Apparentemente questo risolve solo alcuni dei problemi. Ho installato la nuova versione di libv8, ma ora il rubyracer sta ancora cercando l'altra penso? Ancora esaminandolo.


3

Ho avuto lo stesso problema su Yosemite. La mia soluzione è simile a quella che appare sopra.

Utilizzare gem uninstall libv8per rimuovere tutto ciò che potrebbe essere installato.

Lascia therubyracer nel tuo Gemfile, ma rimuovi qualsiasi riferimento esplicito a libv8.

Corri bundle install.

libv8 quindi installato bene come dipendenza.


Questo era il mio problema. Avevo più versioni di libv8 che combattevano tra loro. Eliminarli e lasciare che il bundler risolva la dipendenza era la cosa giusta da fare.
DavidMann10k

2

Risposta aggiornata per il 2018.

Sono su High Sierra, su 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/

È quello che ha funzionato per me.

Il merito va a @ coding-addicted per la sua risposta originale .


1

Dopo ore di tentativi, l'aggiornamento di ruby ​​ha funzionato:

brew install ruby 

e quindi aggiungendo quanto segue al file gem:

gem 'libv8'  
gem 'therubyracer' 

1

Un avvertimento a chiunque potrebbe aver avuto il mio problema: ho finito per disinstallare la mia versione di Ruby in RVM e quindi reinstallarla. Sembrava che usasse le dipendenze corrette nell'ultima versione degli strumenti xcode per la compilazione di ruby.

rvm list
rvm uninstall ruby-x.x.x
rvm install ruby-x.x.x

0

Ho fatto quanto segue

gem install therubyracer

che ora installa therubyracer 0.12.1che installa la dipendenza libv8 (3.16.14.7 x86_64-darwin-14)installata senza errori.

L'ho fatto usando quello ruby 2.1.5che ho installato tramite:

CC=/usr/bin/gcc rbenv install 2.1.5

cosa che ho fatto dopo aver corso brew upgrade ruby-builds.

Dopo l'installazione ruby 2.1.5, ho anche eseguito

gem upgrade --system

ottenere rubygems-update 2.4.5


0

ciò accade anche a causa di alcuni conflitti con la libv8, anche se puoi semplicemente assegnare una versione a rubyracer e verrà installata:

modificare quanto segue nel gemfile:

gemma "therubyracer", "~> 0,12,1"

e fai l'installazione in bundle



0

Questa soluzione ha funzionato per me seguendo la soluzione di Jakub Troszok sopra con solo una piccola modifica

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

Indica qual è la modifica minore e prova a spiegare perché funziona. Dato che stai rispondendo a una domanda vecchia di 4 anni, dovresti anche aggiungere alcuni dettagli sulle versioni applicabili (la tua risposta potrebbe non essere pertinente in quel momento).
Michal

0

Usare la directory homebrew di v8 per --with-v8-dir=/usr/local/Cellar/v8@3.15/3.15.11.18_1, invece di /usr/local/opt/v8-315, è ciò che ha funzionato per me, nella risposta di coding addicted.

Questo è visibile nella Summarydella birra comando install, brew install v8-315.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.