Próbuję zainstalować libv8 3.16.14.3, ale pojawia się błąd w OSX Mavericks przy użyciu najnowszego stabilnego rvm i ruby-1.9.3-p125.
Oto wynik uruchomienia polecenia „gem install libv8”:
~/src(branch:master) » gem install libv8
Fetching: libv8-3.16.14.3.gem (100%)
Building native extensions. This could take a while...
ERROR: Error installing therubyracer:
ERROR: Failed to build gem native extension.
/Users/me/.rvm/rubies/ruby-1.9.3-p125/bin/ruby extconf.rb
creating Makefile
Compiling v8 for x64
Using python 2.7.5
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Unable to find a compiler officially supported by v8.
It is recommended to use GCC v4.4 or higher
Using compiler: g++
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Unable to find a compiler officially supported by v8.
It is recommended to use GCC v4.4 or higher
libtool: unrecognized option `-static'
libtool: Try `libtool --help' for more information.
make[1]: *** [/Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/libpreparser_lib.a] Error 1
make: *** [x64.release] Error 2
/Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/ext/libv8/location.rb:36:in `block in verify_installation!': libv8 did not install properly, expected binary v8 archive '/Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/tools/gyp/libv8_base.a'to exist, but it was not found (Libv8::Location::Vendor::ArchiveNotFound)
from /Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/ext/libv8/location.rb:35:in `each'
from /Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/ext/libv8/location.rb:35:in `verify_installation!'
from /Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/ext/libv8/location.rb:26:in `install!'
from extconf.rb:7:in `<main>'
GYP_GENERATORS=make \
build/gyp/gyp --generator-output="out" build/all.gyp \
-Ibuild/standalone.gypi --depth=. \
-Dv8_target_arch=x64 \
-S.x64 -Dv8_enable_backtrace=1 -Dv8_can_use_vfp2_instructions=true -Darm_fpu=vfpv2 -Dv8_can_use_vfp3_instructions=true -Darm_fpu=vfpv3
CXX(target) /Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/allocation.o
CXX(target) /Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/atomicops_internals_x86_gcc.o
CXX(target) /Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/bignum.o
CXX(target) /Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/bignum-dtoa.o
CXX(target) /Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/cached-powers.o
CXX(target) /Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/conversions.o
CXX(target) /Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/diy-fp.o
CXX(target) /Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/dtoa.o
CXX(target) /Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/fast-dtoa.o
CXX(target) /Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/fixed-dtoa.o
CXX(target) /Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/once.o
CXX(target) /Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/preparse-data.o
CXX(target) /Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/preparser.o
CXX(target) /Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/preparser-api.o
CXX(target) /Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/scanner.o
CXX(target) /Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/strtod.o
CXX(target) /Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/token.o
CXX(target) /Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/unicode.o
CXX(target) /Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/utils.o
LIBTOOL-STATIC /Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/libpreparser_lib.a
Gem files will remain installed in /Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3 for inspection.
Results logged to /Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/ext/libv8/gem_make.out
źródło
--with-system-v8
FTW!bundle config build.libv8 --with-system-v8
pomaga!bundle update
uratował mnie z królestwa zdrętwienia itherubyracer
po rozwiązaniu tego problemuMożesz faktycznie zainstalować tę wersję na Mavericks:
Mogę potwierdzić, że działa z Rbenv i Ruby 1.9.3p448
źródło
gem install libv8 -- --with-system-v8
Rozwiązanie El Capitan dla mnie:
Gdzie
REQUIRED_LIBV8_VERSION
dla mnie był3.16.14.7
, ale musisz sprawdzić, który jest potrzebny w twoim pakiecie (to był ten dla szyn4.2.5
)Może być także konieczne uruchomienie powyższych poleceń jako superużytkownik (jeśli twoje klejnoty i biblioteki systemowe są globalne)
źródło
Kiedy próbowałem zaakceptować odpowiedź, libv8 instalowałby się pomyślnie
gem install libv8
, alebundle install
nie działałby na libv8. Myślę, żebundle install
próbowałem zainstalować inną wersję libv8. Byłem w stanie znaleźć rozwiązanie, które działało dla mnie.Potrzebowałem libv8, ponieważ zależy od niego program Therubyracer. Aby go zainstalować, zauważyłem wersję, której nie udało się zainstalować w
gem_make.out
dzienniku programu therubyracer. (Ścieżka dogem_make.out
dziennika będzie w komunikacie o błędzie.) W moim przypadku była to 3.16.14.7. (Ta wersja prawdopodobnie z czasem się zmieni, na wypadek, gdybyś czytał to za trzy lata.) Potem to zrobiłem:gem install libv8 -v 3.16.14.7 -- --with-v8-lib
<- zanotuj inną flagę niż zaakceptowana odpowiedźco pozwoliło na to:
gem install therubyracer
co pozwoliło mi ukończyć moje
bundle install
.To działało dla mnie na OSX Yosemite.
źródło
https://github.com/cowboyd/therubyracer/issues/339
Rozwiązanie jasonlynesa znalezione w tym linku stanowiło dla mnie sztuczkę. wszystko inne nie działało.
źródło
Możesz skonfigurować program pakujący zamiast znać każdą wersję. @ 3.15 można zastąpić innymi wersjami.
źródło
Zaktualizowałem do macOS Catalina @ 10.15 i
ruby 2.6.5
. Po pewnym czasie dostałemlibv8
itherubyracer
zainstalować ponownie, chociaż nie polecam jeszcze aktualizować macOS (słyszałem, żeruby
powinno być dobrze).Najpierw musiałem zaktualizować XCode
xcode-select --install
Kiedyś
rbenv
aktualizowałemruby
iruby
ręcznie ustawiałem wersję/Users/<username>/.rbenv/version
na2.6.5
. Chociaż nie powinno to mieć znaczenia, jeśli Twój projekt zawiera.ruby-version
plik.Następnie oczyścić dowolną wersję zainstalowałem fro
libv8
(zazwyczaj/usr/local/opt/
)brew uninstall v8
,brew uninstall [email protected]
brew install [email protected]
Teraz, po https://github.com/cowboyd/libv8#do-i-get-a-binary , zainstalowałem
gem install libv8 -v '3.16.14.19' -- --with-system-v8
a następnie może działać
bundle install
bez błędów.źródło
Mój problem jest od
therubyracer
kiedy, kiedy aktualizacja domacOS 10.15
iruby-2.6.5
I następujące dla mnie działa:
źródło
Spróbuj tego, co streściłem w tym pytaniu: „gem install therubyracer -v '0.10.2” ”na urządzeniach z systemem OSX nie instaluje się
To zadziałało dla mnie (OS X Mavericks)
źródło
Miałem ten sam problem podczas aktualizacji z OSX Mountain Lion do OSX Mavericks. Przyjęta odpowiedź działała w przypadku libv8, ale nie wtedy, gdy poszedłem zainstalować pakiet klejnotu therubyracer.
Uaktualnienie z ruby-1.8.7-p354 do ruby-1.8.7-375 załatwiło sprawę. libv8 (3.16.14.3-x86_64-darwin-13) i klejnoty therubyracer (0.12.0) zainstalowane bez problemu.
zakładając, że używasz rbenv:
źródło
To działało dobrze dla mnie:
Spróbuj zainstalować ten wstępnie skompilowany klejnot:
https://dl.dropboxusercontent.com/u/7919548/gems/libv8/libv8-3.11.8.17-x86_64-darwin-13.gem (sha1: 5ce07aaf4085fff5a5e10fe018fd6b22021bef3b)
Lub jeśli wolisz zbudować własny:
Źródło: https://github.com/cowboyd/libv8/issues/107
Dzięki Felixowi Bünemannowi za naprawę !
źródło
Wypróbowałem kilka rozwiązań opisanych w poprzednich odpowiedziach, ale okazało się, że uruchomienie pakietu (w celu zainstalowania innych, brakujących klejnotów) spróbuje ponownie skompilować libv8 (pomimo tego, że już pomyślnie go zainstalowałem
--with-system-v8
) i tym samym wystąpi ten sam problem.W końcu odkryłem, że usunięcie klejnotu libv8, pobranie pliku klejnotów z rubygemów, a następnie ręczne zainstalowanie
.gem
pliku z--with-system-v8
flagą zadziałało dla mnie.to znaczy
Dzięki odpowiedzi Gaurav Agarwal za poprowadzenie mnie właściwą ścieżką!
źródło
Nic mi to nie pomogło ... bez względu na to, co zrobiłem, moja instalacja klejnotów Therubyracer ciągle narzekała na ten błąd:
Ostatecznie pomogło mi to inne forum, na które natknąłem się na https://www.bountysource.com/issues/82833405-libv8-fails-to-build-on-catalina-10-15
Ostateczne rozwiązanie, które zadziałało dla mnie:
Musiałem dodać te linie do mojego pliku .zshrc:
Następnie musiałem uruchomić następujące polecenia:
Mam nadzieję, że ktoś inny uzna to za przydatne!
źródło
Możesz spróbować ręcznie skompilować i zainstalować klej za pomocą metody wymienionej na stronie github libv8.
źródło
W MAC-Yosemite ze środowiskiem RVM i wersją Ruby-2.1.1
gem install libv8 -v 3.16.14.3 -- --with-v8-lib gem install therubyracer
Działa za pomocą powyższego polecenia, może to potwierdzić.
źródło
Naprawdę działało dla mnie uaktualnienie Ruby do 2.2.0, usunięcie Gemfile.lock i ponowne pakowanie.
Działa jak urok!
źródło
To działało dla mnie.
zamień na
3.16.14.7
swoją wersję.źródło
Napotkałem podobny problem na El Cap. Oto co zrobiłem.
I wtedy,
Wreszcie,
źródło
Użyłem wersji beta Xcode do innego projektu i zapomniałem. Przełącz z powrotem za pomocą
xcode-select
. Coś jak:źródło
Usuń z Gemfile:
klejnot „therubyracer”,: platform =>: ruby
źródło