Jak zainstalować klejnotęrubyracer na 10.10 Yosemite?

97

Nie udało mi się zainstalować klejnoturubyracer na Yosemite 10.10.

Oto dziennik:

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


Tworzenie rozszerzeń natywnych z: „--with-system-v8”
To może chwilę potrwać ...
Pomyślnie zainstalowano libv8-3.16.14.3
Przetwarzanie dokumentacji dla libv8-3.16.14.3
Instalowanie dokumentacji ri dla libv8-3.16.14.3
Zakończono instalowanie dokumentacji dla libv8 po 0 sekundach
Zainstalowano 1 klejnot


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


Tworzenie rozszerzeń natywnych z: „--with-system-v8”
To może chwilę potrwać ...
BŁĄD: Błąd podczas instalacji therubyracer:
    BŁĄD: nie udało się utworzyć rozszerzenia natywnego Gem.

    /usr/local/var/rbenv/versions/2.1.2/bin/ruby extconf.rb --with-system-v8
sprawdzanie main () w -lpthread ... tak
sprawdzanie main () w -lobjc ... tak
sprawdzanie wersji 8.h ... nie
*** extconf.rb nie powiodło się ***
Nie można utworzyć Makefile z jakiegoś powodu, prawdopodobnie z braku niezbędnego
biblioteki i / lub nagłówki. Więcej informacji znajdziesz w pliku mkmf.log. Możesz
potrzebujesz opcji konfiguracyjnych.

Dostępne opcje konfiguracji:
    --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
    --bez-make-prog
    --srcdir =.
    --curdir
    --ruby = / usr / local / var / rbenv / Versions / 2.1.2 / bin / ruby
    --with-pthreadlib
    --without-pthreadlib
    --with-objclib
    --without-objclib
    --enable-debug
    --disable-debug
    --with-v8-dir
    --bez-v8-dir
    --with-v8-include
    --without-v8-include = $ {v8-dir} / include
    --with-v8-lib
    --without-v8-lib = $ {katalog-v8} / 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 ': Masz wybrano do używania wersji V8 znalezionej w twoim systemie (Libv8 :: Location :: System :: NotFoundError)
i * nie * ten, który jest w pakiecie z rubygem libv8. Jednak,
nie można go było zlokalizować. upewnij się, że masz wersję
v8, który jest zgodny z 3.16.14.3 zainstalowany. Możesz
potrzeba specjalnych opcji --with-v8-dir, jeśli jest w niestandardowym formacie
Lokalizacja

dzięki,
Mgmt

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

extconf nie powiódł się, kod zakończenia 1

Pliki Gem pozostaną zainstalowane w /usr/local/var/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/therubyracer-0.12.1 do wglądu.
Wyniki zarejestrowane w /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. na zewnątrz
Nicolas Blanco
źródło
Ty też masz problemy z Yosemite: D
Dalorzo
Wiem, lubię być poszukiwaczem przygód :-P
Nicolas Blanco
1
Ja też mam z tym problem, próbowałem też zrobić brew install v8, ale nie zadziałało
acrogenesis
@sandelius sprawdź moją odpowiedź
mmln

Odpowiedzi:

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

następnie po prostu spakuj klejnoty projektu

to jest jedyny sposób, w jaki to działało dla mnie w 10.10 (ruby 2.1.2)

mmln
źródło
2
dzięki, ale to jest libv8, mówiłem o klejnocie therubyracer.
Nicolas Blanco
2
to jest to, czego potrzebujesz, aby uniknąć problemów z therubyracer
mmln
2
Nie obchodzi mnie, czy łamię zasady. Nie mogę ci wystarczająco podziękować. Zaoszczędziłeś mi ogromnego terminu realizacji projektu.
AKWF
1
Dziękuję, to działa dla mnie, tylko dla faceta kopiującego / wklejającego takiego jak ja, jesteśmy teraz w gem install pkg / libv8-3.16.14.7-x86_64-darwin-14.gem
Christophe Dufour
2
Warto również wspomnieć, że jeśli używasz Gemfile i nadal masz problemy z instalacją therubyracer, to prawdopodobnie dlatego, że istnieje inna wersja libv8, która została już dodana do Gemfile.lock. Po prostu dodaj gem 'libv8', '3.16.14.3'(lub cokolwiek jest dokładną wersją biblioteki libv8, którą właśnie zainstalowałeś ręcznie) i uruchom pakiet aktualizacji libv8. To powinno następnie zainstalowaćrubyRacer.
Jon Cairns
257
gem uninstall libv8
brew install v8
gem install therubyracer
gem install libv8 -v '3.16.14.3' -- --with-system-v8

to jest jedyny sposób, w jaki to działało dla mnie w 10.10 (ruby 2.1.2)

Lub spróbuj gem install libv8 -v 'XX.XX.XX' -- --with-system-v8dodać wersję klejnotu :)

AKTUALIZACJA dla systemu 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
źródło
3
Tak, to jest ten, który pomaga bez żadnych dziwactw. Nawet jeśli po prostu otrzymujesz błąd libv8, zrób to! dzięki.
pjammer
2
Tak. To jest właściwy sposób, aby to zrobić. Zwłaszcza jeśli przebudowałeś ruby ​​z najnowszymi narzędziami wiersza poleceń 10.10.
Pankaj Tyagi
3
Pracował dla mnie z Ruby 2.1.3 w OS X Yosemite.
Sarah Vessels
4
Oprócz tego, jeśli używasz pakietu i masz plik Gemfile, może być konieczne dostosowanie go do najnowszej właśnie zainstalowanej wersji. Na przykład musiałem (na OS X Yosemite) wykonać następujące czynności: gem 'therubyracer', '0.12.1'(dodano wersję). Następnie usunął Gemfile.lock i zrobił bundle install. To działa dobrze.
paneer_tikka
2
U mnie też to zadziałało, na El Capitan. Myślę, że jest to o wiele prostsze i powinno być akceptowaną odpowiedzią.
rcd
42

Żadna z odpowiedzi tym razem nie działa dla mnie. Ja też używam tego:

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

Widziane w problemach z rubyracerami na Githubie.

Mam nadzieję, że pomoże to komuś innemu.

uzależniony od kodowania
źródło
Dzięki za to. Żadne z innych podejść nie zadziała na El Capitan przy użyciu nowoczesnych wersji zależnych klejnotów. (therubyracer jest żałośnie za libv8 w tym momencie.)
Matt Mitchell
Niestety masz rację ... Ten błąd doprowadza mnie do szału za każdym razem, gdy zmieniam wersję ruby.
uzależniony od kodowania
1
tap homebrew / wersje jest teraz przestarzały, więc to już nie działa.
mattp
1
Właściwie to gem install therubyracer -- --with-v8-dir=$(brew --prefix v8-315)działa lepiej dla mnie. Dir w moim mac jest rzeczywiście/usr/local/opt/[email protected]
Junji Zhi
26

Może komuś się przyda ale miałem problemy z zainstalowaniem programurubyracer (z powodu problemów z libv8) rozwiązaniem było odinstalowanie wszystkich zainstalowanych libv8. Zainstalowaćrubyracer

$ 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

Mam nadzieję, że to komuś pomoże.

Jakub Troszok
źródło
Wydaje się, że to zadziałało. Jednak chciałbym podkreślić, że najlepszym sposobem, aby odinstalować wszystkie wersje gem libv8 jest: gem uninstall libv8 -a -x. Jeśli używasz menedżera wersji Ruby (np. rbenvItp.), To działa to tylko dla twojej aktualnej wersji Ruby (na wypadek, gdyby nie było to oczywiste).
xentek
👍 to rozwiązanie zadziałało dla mnie - El Capitan 10.11.6, Ruby - ruby ​​1.9.3p448 (2013-06-27 wersja 41675)
sameera207
13

Wygląda na to, że zostało to naprawione wcześniej. To, co zadziałało dla mnie i @aurels oraz @Mike Causer i @Juanda, to:

bundle update libv8
Martin T.
źródło
7

To zadziałało bardzo dobrze na moim Yosemite i Ruby 2.1.5 (od Ruby do RVM)

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

Wcześniej Gem::Ext::BuildError: ERROR: Failed to build gem native extension.powodowało to błąd dla libv8 gem w wersji 3.16.14.3

Rohan Daxini
źródło
7

Tylko to działa dla mnie w moim 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
źródło
Tylko to rozwiązało problem z instalacją rubyracera dla ruby 1.9.3p484irubyracer 0.12.3
Michael Klishevich
6

Po tym mogłem kontynuować wyścig z rubinem rm Gemfile.lock

wcześniej: zainstalowałem v8 przez brew install v8, a potem zrobiłemgem install libv8 -v '3.16.14.3' -- --with-system-v8

i używam 10.10 Yosemite

CloudMagick
źródło
4

Naprawili ten problem w najnowszej wersji libv8. Zobacz: https://github.com/cowboyd/libv8/issues/123

Powinieneś zainstalować z repozytorium github, w railsach dodałem linię do mojego pliku gem w ten sposób gem "libv8", git: "git://github.com/cowboyd/libv8.git", submodules: true

EDYTOWAĆ:

To najwyraźniej tylko rozwiązuje problem. Zainstalowałem nową wersję libv8, ale teraz rubyracer nadal szuka drugiej, myślę? Wciąż się nad tym zastanawiam.

Borromakot
źródło
3

Miałem ten sam problem na Yosemite. Moje rozwiązanie jest podobne do powyższego.

Służy gem uninstall libv8do usuwania wszystkiego, co może być zainstalowane.

Pozostaw therubyracer w swoim Gemfile, ale usuń wszelkie jawne odniesienia do libv8.

Biegnij bundle install.

libv8 następnie zainstalowano poprawnie jako zależność.

Martin Streicher
źródło
To był mój problem. Miałem wiele wersji libv8 walczących ze sobą. Usunięcie ich i pozwolenie pakietowi na rozwiązanie zależności było właściwą rzeczą do zrobienia.
DavidMann10k
2

Zaktualizowana odpowiedź na 2018 rok.

Jestem na High Sierra, na 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/

To działa na mnie.

Zasługa @ coding-addicted za oryginalną odpowiedź .

alexggordon
źródło
1

Po godzinach prób zwykłej aktualizacji ruby ​​zadziałało:

brew install ruby 

a następnie dodanie do pliku gem:

gem 'libv8'  
gem 'therubyracer' 
ashwin tang
źródło
1

Powiadomienie każdego, kto mógł mieć mój problem: w końcu odinstalowałem moją wersję Ruby w RVM, a następnie ponownie ją zainstalowałem. Wydawało się, że w najnowszej wersji narzędzi xcode do kompilowania rubiego używane są poprawne zależności.

rvm list
rvm uninstall ruby-x.x.x
rvm install ruby-x.x.x
colsen
źródło
0

Zrobiłem co następuje

gem install therubyracer

który teraz instaluje, therubyracer 0.12.1który instaluje zależnośćlibv8 (3.16.14.7 x86_64-darwin-14) która została zainstalowana bez błędów.

Zrobiłem to za pomocą ruby 2.1.5którego zainstalowałem przez:

CC=/usr/bin/gcc rbenv install 2.1.5

co zrobiłem po biegu brew upgrade ruby-builds .

Po zainstalowaniu ruby 2.1.5również pobiegłem

gem upgrade --system

dostać rubygems-update 2.4.5

Chris Beck
źródło
0

dzieje się tak również z powodu pewnych konfliktów z libv8, chociaż możesz po prostu przypisać wersję do rubyracera i zostanie ona zainstalowana:

zmień następujące elementy w pliku gem:

gem 'therubyracer', '~> 0.12.1'

i wykonaj instalację pakietową

abcd_win
źródło
0

To rozwiązanie zadziałało dla mnie po powyższym rozwiązaniu Jakuba Troszoka z niewielką tylko zmianą

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
źródło
Zwróć uwagę na drobną zmianę i spróbuj wyjaśnić, dlaczego działa. Ponieważ odpowiadasz na pytanie sprzed 4 lat, powinieneś również dodać trochę szczegółów na temat odpowiednich wersji (Twoja odpowiedź mogła wtedy nie być odpowiednia).
Michał
0

Używanie katalogu homebrew v8 --with-v8-dir=/usr/local/Cellar/[email protected]/3.15.11.18_1zamiast, zamiast /usr/local/opt/v8-315, działa dla mnie, w kodowaniu odpowiedzi uzależnionego.

Jest to widoczne w Summaryz wywaru polecenie zainstalowania brew install v8-315.

pianka
źródło