Tentando instalar therubyracer em mavericks usando "gem install therubyracer -v '0.10.2'", mas estou recebendo o seguinte erro:
/Users/dennischen/.rvm/rubies/ruby-1.9.3-p194/bin/ruby extconf.rb
checking for main() in -lobjc... yes
creating Makefile
make
compiling rr.cpp
clang: warning: argument unused during compilation: '-rdynamic'
rr.cpp:48:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
1 warning generated.
compiling v8.cpp
clang: warning: argument unused during compilation: '-rdynamic'
compiling v8_array.cpp
clang: warning: argument unused during compilation: '-rdynamic'
compiling v8_callbacks.cpp
clang: warning: argument unused during compilation: '-rdynamic'
compiling v8_context.cpp
clang: warning: argument unused during compilation: '-rdynamic'
compiling v8_date.cpp
clang: warning: argument unused during compilation: '-rdynamic'
compiling v8_debug.cpp
clang: warning: argument unused during compilation: '-rdynamic'
compiling v8_exception.cpp
clang: warning: argument unused during compilation: '-rdynamic'
v8_exception.cpp:10:16: warning: unused variable 'stack' [-Wunused-variable]
static void* stack[20];
^
1 warning generated.
compiling v8_external.cpp
clang: warning: argument unused during compilation: '-rdynamic'
v8_external.cpp:10:9: warning: unused variable 'references' [-Wunused-variable]
VALUE references;
^
1 warning generated.
compiling v8_function.cpp
clang: warning: argument unused during compilation: '-rdynamic'
compiling v8_handle.cpp
clang: warning: argument unused during compilation: '-rdynamic'
compiling v8_locker.cpp
clang: warning: argument unused during compilation: '-rdynamic'
v8_locker.cpp:45:5: warning: control reaches end of non-void function [-Wreturn-type]
}
^
v8_locker.cpp:85:5: warning: control reaches end of non-void function [-Wreturn-type]
}
^
2 warnings generated.
compiling v8_message.cpp
clang: warning: argument unused during compilation: '-rdynamic'
compiling v8_object.cpp
clang: warning: argument unused during compilation: '-rdynamic'
v8_object.cpp:77:19: warning: unused variable 'proto' [-Wunused-variable]
Handle<Value> proto(rr_rb2v8(prototype));
^
1 warning generated.
compiling v8_script.cpp
clang: warning: argument unused during compilation: '-rdynamic'
compiling v8_string.cpp
clang: warning: argument unused during compilation: '-rdynamic'
compiling v8_template.cpp
clang: warning: argument unused during compilation: '-rdynamic'
compiling v8_try_catch.cpp
clang: warning: argument unused during compilation: '-rdynamic'
compiling v8_v8.cpp
clang: warning: argument unused during compilation: '-rdynamic'
compiling v8_value.cpp
clang: warning: argument unused during compilation: '-rdynamic'
v8_value.cpp:100:9: warning: unused function 'ToInt32' [-Wunused-function]
VALUE ToInt32(VALUE self) {
^
1 warning generated.
compiling v8_weakref.cpp
clang: warning: argument unused during compilation: '-rdynamic'
linking shared-object v8.bundle
clang: error: no such file or directory: '/Users/dennischen/.rvm/gems/ruby-1.9.3-p194@panini/gems/libv8-3.3.10.4/lib/libv8/build/v8/libv8.a'
make: *** [v8.bundle] Error 1
Alguém pode me ajudar a descobrir como fazer essa joia funcionar? Eu tenho as ferramentas de linha de comando instaladas.
ruby-on-rails
macos
gem
therubyracer
osx-mavericks
user2711889
fonte
fonte
homebrew
? Tente instalar o v8brew install v8
antes de instalar o gemRespostas:
Se você decidir usar uma
therubyracer
versão mais recente de gem, você não terá mais esse problemaDe outra forma:
fonte
brew tap homebrew/dupes
corrige "Erro: nenhuma fórmula disponível para apple-gcc42"Então eu finalmente consegui fazer funcionar depois de algumas lutas ... graças a Simon e Alvaro.
Tenho uma coisa a acrescentar, porém, usar a sinalização --with-system-v8 não funcionou para mim ... Então, removi meu sistema v8 com
brew uninstall v8
E a corrida
gem install libv8
Se você já executou
gem install libv8
com o sinalizador do sistema v8, certifique-se de desinstalar essa versão gem (faça isso executandogem uninstall libv8
). O importante é que você não deve usar o fornecido pelo brew, ele parece não funcionar no Mavericks (ele é instalado bem e o bundler irá relatar que seu pacote está completo, mas seu aplicativo irá falhar ao tentar usar o v8 )Para resumir a resposta, fazer o seguinte funcionou para mim:
fonte
brew update
que vem e acelera esses caminhos o deixará em um estado quebrado.Eu tive o mesmo problema, isso funciona para mim:
Em primeiro lugar:
brew install apple-gcc42
gcc
,cpp
,g++
) para/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/<compiler>
Depois, você pode tentar isto:
brew install v8
gem install libv8 -v '3.3.10.4' -- --with-system-v8
gem install therubyracer -v 'therubyracer'
oubundle install
no diretório do projeto rails.fonte
apple-gcc42: This formula either does not compile or function as expected on macOS
Meu macOS é 10.12.6Acabei de ter o mesmo problema e uma solução atualmente é usar apple-gcc42 em vez de clang para compilar as duas joias:
E então você tem a escolha entre fazer alguns links simbólicos em / usr / bin para binários {gcc, g ++, c ++}:
Na verdade, g ++ deve ser suficiente.
Ou ... você pode exportar variáveis de ambiente CC / CXX / CPP com caminhos correspondentes aos binários criados pelo homebrew. Essa é certamente uma solução alternativa mais limpa.
Uma terceira solução é baixar o Xcode 4.6.3 e instalá-lo na pasta Aplicativos . Em seguida, digite no terminal:
Assim que a gem for instalada, você pode voltar para o Xcode 5.0:
fonte
Eu encontrei uma solução alternativa que funcionou sem instalar o apple-gcc42.
Isso funcionará se a mensagem de erro que você está recebendo for assim:
Então você deve ser capaz de fazer o seguinte:
Fonte: https://github.com/cowboyd/therubyracer/issues/277#issuecomment-27734348
fonte
ln -s /usr/local/Cellar/v8/3.21.17/lib/libv8_base.x64.a ~/.rvm/gems/ruby-1.9.3-p327/gems/libv8-3.3.10.4/lib/libv8/build/v8/libv8.a
Como sugerido em muitas respostas, a coisa mais fácil a fazer é compilar as extensões nativas do Ruby Racer com o Apple GCC 4.2 (em vez da versão instalada com o Xcode).
Se você estiver usando MacPorts, não deverá ter que lidar manualmente com a configuração de links simbólicos para os binários do GCC. O
port select
comando faz isso por você. Se você não atualizou MacPorts desde a instalação do Mavericks, faça asudo port selfupdate
. Com o MacPorts atualizado, tente o seguinte:Em geral, este procedimento (
sudo port select gcc [version]
) funcionará sempre que você quiser usar uma versão específica do GCC em vez da instalada pelo Xcode (Apple LLVM v5 para 10.9 Mavericks / Xcode 5).fonte
Consigo instalar o therubyracer 0.12 e libv8 3.16.14.3 no ruby 2.0.0p353 e os x 10.9
libv8 requer gcc42
therubyracer requer gcc posterior
Gemfile
use em
bundle
vez degem install therubyracer
fonte
bundle install
depois de dias de tentativa e erro. A única coisa que fiz de maneira diferente foi desinstalar todas as ferramentas de desenvolvedor que foram instaladas porbrew
atégcc --version
informar que era a versão Apple LLVM e foi configurada com Xcode, então movi o existente/usr/bin/gcc
(et. Al.) Antes de criar um link simbólico para apple-gcc42 libs, então, em vez de instalar o gcc49 (da última vez que tentei, ele assumiu uma configuração), apenas copiei as libs gcc, g ++ e cpp originais de volta. Dado que tentei 3 dúzias de maneiras diferentes de encontrar a que funcionou para mim, YMMVEsta deve ser uma forma segura e limpa (sem links simbólicos) de instalar o therubyracer para qualquer um que tenha problemas.
Retirado de: gem install therubyracer -v 0.11.4 falha no OS X 10.10
instale o Xcode (se você ainda não tiver uma dessas versões) 6.1.1, 6.2-beta ou 6.3-beta e (este é necessário) 4.6.3
gem uninstall libv8
se você ainda não fezmudar para Xcode 4.6.3
sudo xcode-select --switch /Applications/Xcode4.6.3.app/Contents/Developer
gem install libv8 -v '3.11.8.17'
Ou qualquer versão que esteja ligada à sua versão do therubyracermude para o Xcode 6.1.1, 6.2-beta ou 6.3-beta (ou se você quiser tentar a instalação atual do Xcode, ajuste esta linha, eu confirmei que todos os três funcionam)
sudo xcode-select --switch /Applications/Xcode6.1.1.app/Contents/Developer
gem install therubyracer -v '0.11.4'
ou a versão que você está tentando instalar.fonte
sudo xcode-select --switch /Applications/Xcode4.6.3.app/Contents/Developer
e executogem install libv8 -v '3.3.10.4'
, recebo:unable to locate xcodebuild, please make sure the path to the Xcode folder is set correctly!
O que estou fazendo incorretamente?Eu tive um erro quase idêntico ao tentar instalar o therubyracer 0.12.0 para fazê-lo funcionar com o libv8. Isso funcionou para mim:
fonte
Tive o mesmo problema quando atualizei do OSX Mountain Lion para o OSX Mavericks.
Atualizar de ruby-1.8.7-p354 para ruby-1.8.7-375 funcionou para mim.
Tente atualizar do ruby 1.9.3-p194 para rc1 (1.9.3 está acima do p484 agora)
presumindo que você use rbenv:
fonte
Tive esse problema depois de atualizar do Mavericks para o Yosemite. O problema é que compilei minha versão Ruby com a versão antiga do OSX.
Se eu corresse
ruby -rubygems -e 'puts Gem::Platform.new(RUBY_PLATFORM)'
Eu obteria em
x86_64-darwin-13
vez dex86_64-darwin-14
para Yosemite.Para reinstalar Ruby I
rvm remove ruby-2.1.1
rvm reinstall --disable-binary 2.1
Então consegui rodar
bundle install
sem erros depois de tentar todas as soluções acima.fonte
O que eu fiz foi em osx mavericks:
Então:
Este procedimento baixou uma versão binária de libv8 e a instalou.
fonte