Estou tentando instalar a libv8 3.16.14.3, mas obtendo um erro no OSX Mavericks usando o último rvm estável e o ruby-1.9.3-p125.
Esta é a saída da execução do comando '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
fonte
--with-system-v8
FTW!bundle config build.libv8 --with-system-v8
ajuda!bundle update
metherubyracer
gem depois de resolvê-lo: stackoverflow.com/questions/23536893/…Você pode instalar essa versão no Mavericks:
Posso confirmar que funciona com rbenv e ruby 1.9.3p448
fonte
gem install libv8 -- --with-system-v8
Solução El Capitan para mim:
Onde
REQUIRED_LIBV8_VERSION
eu estava3.16.14.7
, mas você precisa verificar qual é o que você precisa no seu pacote (este foi o caminho para os trilhos4.2.5
)Você também pode precisar executar os comandos acima como superusuário (se suas gemas e bibliotecas do sistema forem globais)
fonte
Quando tentei a resposta aceita, a libv8 seria instalada com êxito
gem install libv8
, masbundle install
falharia na libv8. Eu acho quebundle install
estava tentando instalar uma versão diferente da libv8. Consegui encontrar uma solução que funcionou para mim.Eu precisava da libv8 porque o therubyracer depende disso. Para instalá-lo, observei a versão que não estava sendo instalada no
gem_make.out
log do therubyracer. (O caminho para ogem_make.out
log estará na mensagem de falha.) No meu caso, era 3.16.14.7. (Esta versão provavelmente mudará com o tempo, caso você esteja lendo isso daqui a três anos.) Então eu fiz isso:gem install libv8 -v 3.16.14.7 -- --with-v8-lib
<- observe sinalizador diferente da resposta aceitao que permitiu que isso funcionasse:
gem install therubyracer
o que me permitiu completar o meu
bundle install
.Isso funcionou para mim no OSX Yosemite.
fonte
https://github.com/cowboyd/therubyracer/issues/339
A solução de jasonlynes encontrada nesse link fez o truque para mim. qualquer outra coisa não funcionou.
fonte
Você pode configurar o bundler em vez de precisar conhecer cada versão. @ 3.15 pode ser substituído por outras versões.
fonte
Atualizei para o macOS Catalina @ 10.15 e
ruby 2.6.5
. Depois de um tempo temoslibv8
etherubyracer
instalar novamente, embora eu recomendo não MacOS atualização ainda (eu ouviruby
deve ser fino).Primeiro, eu tive que atualizar o XCode
xcode-select --install
Eu costumava
rbenv
atualizarruby
e definir aruby
versão manualmente/Users/<username>/.rbenv/version
para2.6.5
. Embora isso não importe se o seu projeto contém um.ruby-version
arquivo.Então eu limpei qualquer versão que instalei fro
libv8
(geralmente em/usr/local/opt/
):brew uninstall v8
,brew uninstall [email protected]
brew install [email protected]
Agora, seguindo https://github.com/cowboyd/libv8#do-i-get-a-binary , instalei
gem install libv8 -v '3.16.14.19' -- --with-system-v8
e então poderia executar
bundle install
sem erros.fonte
Meu problema é que
therubyracer
, quando atualizar paramacOS 10.15
eruby-2.6.5
E o seguinte funciona para mim:
fonte
Tente com o que eu resumi nesta pergunta: "gem install therubyracer -v '0.10.2'" no osx mavericks não está instalando
Funcionou para mim (OS X Mavericks)
fonte
Eu tive esse mesmo problema quando atualizei do OSX Mountain Lion para o OSX Mavericks. A resposta aceita funcionou para libv8, mas não quando fui instalar o pacote therubyracer gem.
Atualizar o ruby-1.8.7-p354 para ruby-1.8.7-375 fez o truque para mim. As gems libv8 (3.16.14.3-x86_64-darwin-13) e therubyracer (0.12.0) instaladas sem problemas.
supondo que você use rbenv:
fonte
Isso funcionou bem pra mim:
Tente instalar esta jóia pré-compilada:
https://dl.dropboxusercontent.com/u/7919548/gems/libv8/libv8-3.11.8.17-x86_64-darwin-13.gem (sha1: 5ce07aaf4085fff5a5e10fe018fd6b22021bef3b)
Ou se você preferir criar o seu próprio:
Fonte: https://github.com/cowboyd/libv8/issues/107
Obrigado a Felix Bünemann pela correção!
fonte
Tentei várias soluções descritas nas respostas anteriores, mas descobri que a execução de um pacote (para instalar outras gemas ausentes) tentaria recompilar a libv8 (apesar de já a ter instalado com êxito usando
--with-system-v8
) e, portanto, sofre do mesmo problema.Eventualmente, descobri que remover a gem libv8, buscar o arquivo gem de rubygems e depois instalar manualmente o
.gem
arquivo com o--with-system-v8
sinalizador funcionou para mim.ie
Agradeço à resposta de Gaurav Agarwal por me levar pelo caminho certo!
fonte
Nada disso me ajudou ... não importa o que eu fiz, minha instalação gem do therubyracer continuava reclamando com este erro:
O que finalmente me ajudou foi este outro fórum que eu encontrei em https://www.bountysource.com/issues/82833405-libv8-fails-to-build-on-catalina-10-15
A solução final que funcionou para mim:
Eu tive que adicionar essas linhas ao meu arquivo .zshrc:
Então eu tive que executar estes comandos:
Espero que alguém ache isso útil!
fonte
Você pode tentar compilar e instalar manualmente a gem através do método mencionado no site libv8 github.
fonte
No MAC-Yosemite com ambiente RVM e na versão ruby-2.1.1
gem install libv8 -v 3.16.14.3 -- --with-v8-lib gem install therubyracer
Funciona com a ajuda do comando acima, pode confirmar isso.
fonte
O que realmente funcionou para mim foi atualizar o ruby para a 2.2.0, remover o Gemfile.lock e agrupar novamente.
Trabalhou como um encanto!
fonte
Isto é o que funcionou para mim.
substitua
3.16.14.7
por sua versão.fonte
Eu enfrentei um problema semelhante em El Cap. Aqui está o que eu fiz.
E depois,
Finalmente,
fonte
Eu estava usando uma versão beta do Xcode para outro projeto e tinha esquecido. Volte com
xcode-select
. Algo como:fonte
Remova do Gemfile:
gem 'therubyracer',: plataformas =>: rubi
fonte