Intento instalar therubyracer en mavericks usando "gem install therubyracer -v '0.10.2'" pero obtengo el siguiente error:
/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
¿Alguien puede ayudarme a descubrir cómo hacer que esta joya funcione? Tengo instaladas las herramientas de línea de comandos.
ruby-on-rails
macos
gem
therubyracer
osx-mavericks
usuario2711889
fuente
fuente
homebrew
? Intente instalar v8 usandobrew install v8
antes de instalar gemRespuestas:
Si decide utilizar una
therubyracer
versión de gema más nueva , ya no tendrá este problemaDe otra manera:
fuente
brew tap homebrew/dupes
corrige "Error: No hay fórmula disponible para apple-gcc42"Así que finalmente lo logré funcionar después de algunos problemas ... gracias a Simon y Alvaro.
Sin embargo, tengo una cosa que agregar, usar la bandera --with-system-v8 no funcionó para mí ... Así que eliminé mi sistema v8 con
brew uninstall v8
Y la carrera
gem install libv8
Si ya ha ejecutado
gem install libv8
con el indicador del sistema v8, asegúrese de desinstalar esa versión de la gema (hágalo ejecutandogem uninstall libv8
). Lo importante es que no debes usar el proporcionado por brew, no parece funcionar en Mavericks (se instala bien y el paquete informará que tu paquete está completo, pero tu aplicación fallará cuando intente usar v8 ).Para resumir la respuesta, hacer lo siguiente funcionó para mí:
fuente
brew update
que llegue y acelere esos caminos te dejará en un estado roto.Tuve el mismo problema, esto funciona para mí:
Ante todo:
brew install apple-gcc42
gcc
,cpp
,g++
) a/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/<compiler>
Después, puedes probar esto:
brew install v8
gem install libv8 -v '3.3.10.4' -- --with-system-v8
gem install therubyracer -v 'therubyracer'
obundle install
en el directorio del proyecto rails.fuente
apple-gcc42: This formula either does not compile or function as expected on macOS
Mi macOS es 10.12.6Sólo tenía el mismo problema y una solución es actualmente el uso de manzana gcc42 en lugar de sonido metálico para compilar las dos gemas:
Y luego tiene la opción entre hacer algunos enlaces simbólicos en / usr / bin para los binarios {gcc, g ++, c ++}:
De hecho, g ++ debería ser suficiente.
O ... podría exportar variables de entorno CC / CXX / CPP con rutas correspondientes a los binarios creados por homebrew. Seguramente es una solución más limpia.
Una tercera solución es descargar Xcode 4.6.3 e instalarlo en la carpeta Aplicaciones . Luego, ingrese en la terminal:
Una vez que se haya instalado la gema, puede volver a Xcode 5.0:
fuente
Encontré una solución que funcionó sin instalar apple-gcc42.
Esto funcionará si el mensaje de error que está recibiendo tiene este aspecto:
Entonces debería poder hacer lo siguiente:
Fuente: https://github.com/cowboyd/therubyracer/issues/277#issuecomment-27734348
fuente
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 se sugiere en muchas respuestas, lo más fácil es compilar las extensiones nativas de Ruby Racer con Apple GCC 4.2 (en lugar de la versión instalada con Xcode).
Si está utilizando MacPorts, no debería tener que lidiar manualmente con la configuración de enlaces simbólicos para los binarios de GCC. El
port select
comando lo hace por ti. Si no ha actualizado MacPorts desde que instaló Mavericks, haga unsudo port selfupdate
. Con MacPorts actualizado, intente lo siguiente:En general, este procedimiento (
sudo port select gcc [version]
) funcionará siempre que desee utilizar una versión específica de GCC en lugar de la instalada por Xcode (Apple LLVM v5 para 10.9 Mavericks / Xcode 5).fuente
Logro instalar therubyracer 0.12 y libv8 3.16.14.3 en ruby 2.0.0p353 y os x 10.9
libv8 requiere gcc42
therubyracer requiere gcc posterior
Gemfile
usar en
bundle
lugar degem install therubyracer
fuente
bundle install
después de días de prueba y error. Lo único que hice de manera diferente fue desinstalar todas las herramientas de desarrollador que fueron instaladas porbrew
hastagcc --version
que se informó que era la versión de Apple LLVM y estaba configurada con Xcode, luego moví el existente/usr/bin/gcc
(et. Al.) Antes de simular el apple-gcc42 libs, luego, en lugar de instalar gcc49 (la última vez que probé, se hizo cargo de un nuestro para configurarlo), simplemente copié las bibliotecas originales de gcc, g ++ y cpp. Dado que probé 3 docenas de formas diferentes de encontrar la que funcionó para mí, YMMVEsta debería ser una forma segura y limpia (sin enlaces simbólicos) de instalar therubyracer para cualquiera que tenga problemas.
Tomado de: gem install therubyracer -v 0.11.4 falla en OS X 10.10
instale Xcode (si aún no tiene una de estas versiones) 6.1.1, 6.2-beta o 6.3-beta y (esta es necesaria) 4.6.3
gem uninstall libv8
si aún no lo has hechocambiar a Xcode 4.6.3
sudo xcode-select --switch /Applications/Xcode4.6.3.app/Contents/Developer
gem install libv8 -v '3.11.8.17'
O la versión que esté vinculada a su versión de therubyracercambie a Xcode 6.1.1, 6.2-beta o 6.3-beta (o si desea probar su instalación actual de Xcode, ajuste esta línea, he confirmado que los 3 funcionan)
sudo xcode-select --switch /Applications/Xcode6.1.1.app/Contents/Developer
gem install therubyracer -v '0.11.4'
o la versión que estás intentando instalar.fuente
sudo xcode-select --switch /Applications/Xcode4.6.3.app/Contents/Developer
y luego ejecutogem install libv8 -v '3.3.10.4'
, obtengo:unable to locate xcodebuild, please make sure the path to the Xcode folder is set correctly!
¿Qué estoy haciendo incorrectamente?Tuve un error casi idéntico al intentar instalar therubyracer 0.12.0 para que funcione con libv8. Esto funcionó para mí:
fuente
Tuve el mismo problema cuando actualicé de OSX Mountain Lion a OSX Mavericks.
Actualizar de ruby-1.8.7-p354 a ruby-1.8.7-375 funcionó para mí.
Tal vez intente actualizar de ruby 1.9.3-p194 a rc1 (1.9.3 está por encima de p484 ahora)
asumiendo que usa rbenv:
fuente
Tuve este problema después de actualizar de Mavericks a Yosemite. El problema fue que compilé mi versión de Ruby con la versión anterior de OSX.
Si corriera
ruby -rubygems -e 'puts Gem::Platform.new(RUBY_PLATFORM)'
Yo obtendría en
x86_64-darwin-13
lugar dex86_64-darwin-14
Yosemite.Para reinstalar Ruby I
rvm remove ruby-2.1.1
rvm reinstall --disable-binary 2.1
Luego pude ejecutar
bundle install
sin errores después de probar todas las soluciones anteriores.fuente
Lo que hice fue en osx mavericks:
Luego:
Este procedimiento descargó una versión binaria de libv8 y la instaló.
fuente