¿Cómo instalar therubyracer gem en 10.10 Yosemite?


97

No logro instalar la gema therubyracer en Yosemite 10.10.

Aquí está el registro:

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


Construyendo extensiones nativas con: '--with-system-v8'
Esto podría tomar un tiempo...
Libv8-3.16.14.3 instalado correctamente
Analizando documentación para libv8-3.16.14.3
Instalación de la documentación de ri para libv8-3.16.14.3
Terminado de instalar la documentación para libv8 después de 0 segundos
1 gema instalada


02:05 $ gem instalar therubyracer -v '0.12.1' - --con-sistema-v8


Construyendo extensiones nativas con: '--with-system-v8'
Esto podría tomar un tiempo...
ERROR: Error al instalar therubyracer:
    ERROR: No se pudo crear la extensión nativa de la gema.

    /usr/local/var/rbenv/versions/2.1.2/bin/ruby extconf.rb --with-system-v8
comprobando main () en -lpthread ... sí
comprobando main () en -lobjc ... sí
comprobando v8.h ... no
*** extconf.rb falló ***
No se pudo crear Makefile debido a alguna razón, probablemente por falta de
bibliotecas y / o encabezados. Consulte el archivo mkmf.log para obtener más detalles. Puedes
necesita opciones de configuración.

Opciones de configuración proporcionadas:
    --with-opt-dir
    --sin-opt-dir
    --con-opt-include
    --without-opt-include = $ {opt-dir} / include
    --con-opt-lib
    --without-opt-lib = $ {opt-dir} / lib
    --con-hacer-prog
    --sin-hacer-prog
    --srcdir =.
    --curdir
    --ruby = / usr / local / var / rbenv / versions / 2.1.2 / bin / ruby
    --con-pthreadlib
    --sin-pthreadlib
    --con-objclib
    --sin objclib
    --enable-debug
    --disable-debug
    --con-v8-dir
    --sin-v8-dir
    --con-v8-include
    --without-v8-include = $ {v8-dir} / include
    --con-v8-lib
    --sin-v8-lib = $ {v8-dir} / 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 ': Tiene elegido para usar la versión de V8 que se encuentra en su sistema (Libv8 :: Location :: System :: NotFoundError)
y * no * el que se incluye con libv8 rubygem. Sin embargo,
no se pudo localizar. por favor asegúrese de tener una versión de
v8 que es compatible con 3.16.14.3 instalado. Puedes
necesita opciones especiales --with-v8-dir si está en un no estándar
ubicación

Gracias,
El Mgmt

    desde /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 '
    de extconf.rb: 32: en ''

extconf falló, código de salida 1

Los archivos de gemas permanecerán instalados en /usr/local/var/rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/therubyracer-0.12.1 para su inspección.
Resultados registrados en /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. fuera

Usted también tiene problemas con Yosemite: D
Dalorzo

Lo sé, me gusta ser aventurero :-P
Nicolás Blanco

1
También estoy teniendo problemas con esto, intenté hacer brew install v8, pero no funcionó
acrogenesis

@sandelius revisa mi respuesta
mmln

Respuestas:


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

luego, simplemente agrupa las gemas de tu proyecto

esta es la única forma en que funcionó para mí en 10.10 (ruby 2.1.2)


2
gracias pero esto es libv8, estaba hablando de la gema therubyracer.
Nicolás Blanco

2
esto es lo que necesita para evitar problemas con therubyracer
mmln

2
No me importa si estoy rompiendo las reglas. No puedo agradecerles lo suficiente. Me ha guardado una fecha límite enorme para el proyecto.
AKWF

1
Gracias, funciona para mí, solo para copiar / pegar tipos como yo, ahora estamos en gem install pkg / libv8-3.16.14.7-x86_64-darwin-14.gem
Christophe Dufour

2
También vale la pena mencionar que si está usando un Gemfile y aún tiene problemas para instalar therubyracer, probablemente sea porque hay una versión diferente de libv8 que ya se ha agregado al Gemfile.lock. Simplemente agregue gem 'libv8', '3.16.14.3'(o lo que sea la versión exacta de libv8 que acaba de instalar manualmente) y ejecute la actualización del paquete libv8. Entonces debería instalar therubyracer.
Jon Cairns

257
gem uninstall libv8
brew install v8
gem install therubyracer
gem install libv8 -v '3.16.14.3' -- --with-system-v8

esta es la única forma en que funcionó para mí en 10.10 (ruby 2.1.2)

O intente gem install libv8 -v 'XX.XX.XX' -- --with-system-v8agregar la versión de la gema :)

ACTUALIZACIÓN para 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

3
Sí, este es el que ayuda sin ninguna rareza. Aunque es posible que esté recibiendo un error de libv8, ¡haga esto! Gracias.
pjammer

2
Sí. Esta es la forma correcta de hacerlo. Especialmente si ha reconstruido su ruby ​​con las últimas herramientas de línea de comandos 10.10.
Pankaj Tyagi

3
Me funcionó con Ruby 2.1.3 en OS X Yosemite.
Sarah Vessels

4
Además de esto, si está utilizando un paquete y tiene un Gemfile, es posible que deba ajustarlo a la última versión que acaba de instalar. Por ejemplo, tuve que (en OS X Yosemite) hacer lo siguiente: gem 'therubyracer', '0.12.1'(agregué la versión). Luego eliminó Gemfile.lock y lo hizo bundle install. Funciona bien.
paneer_tikka

2
Esto también funcionó para mí, en El Capitán. Creo que esto es mucho más simple y debería ser la respuesta aceptada.
registro

42

Ninguna de las respuestas me funciona esta vez. Yo también uso esto:

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

Visto en los problemas de Rubyracer Github.

Espero que ayude a alguien más.


Gracias por esto. Ninguno de los otros enfoques funcionará en El Capitán utilizando versiones modernas de las gemas dependientes. (Therubyracer está lamentablemente detrás de libv8 en este punto)
Matt Mitchell

Lamentablemente tienes razón ... Este error me vuelve loco cada vez que cambio la versión de ruby.
codificación adicto

1
tap homebrew / versions ha quedado obsoleto, por lo que ya no funciona.
Mattp

1
De hecho, gem install therubyracer -- --with-v8-dir=$(brew --prefix v8-315)funciona mejor para mí. El directorio en mi mac es en realidad/usr/local/opt/v8@3.15
Junji Zhi

@JunjiZhi hermano, tu solución funcionó para mí
shubham mishra

26

Tal vez sea útil para alguien, pero tuve problemas para instalar therubyracer (debido a los problemas con libv8), la solución fue desinstalar todos los libv8 que tenía instalados. Instalar therubyracer

$ 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

Espero que esto ayude a alguien.


Esto parece haber funcionado para mí. Sin embargo, me gustaría señalar que la mejor manera para desinstalar todas las versiones de la gema se libv8: gem uninstall libv8 -a -x. Si utiliza un administrador de versiones de ruby ​​(p rbenv. Ej. , Etc.), esto solo funciona para su versión actual de ruby ​​(en caso de que no sea obvio).
xentek

👍 esta solución funcionó para mí - El Capitan 10.11.6, Ruby - ruby ​​1.9.3p448 (2013-06-27 revisión 41675)
sameera207

13

Parece que esto se ha solucionado aguas arriba. Lo que funcionó para mí, @aurels, @Mike Causer y @Juanda fue:

bundle update libv8

7

Esto funcionó muy bien para mí en mi Yosemite y Ruby 2.1.5 (Ruby a través de RVM)

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

Anteriormente me estaba dando un error Gem::Ext::BuildError: ERROR: Failed to build gem native extension.para libv8 gem versión 3.16.14.3


7

Solo esto me funciona en mi 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

Solo este problema resuelto al instalar rubyracer para ruby 1.9.3p484yrubyracer 0.12.3
Michael Klishevich

6

Pude continuar con Ruby Racer después rm Gemfile.lock

de antemano: instalé v8 vía brew install v8, y luego hicegem install libv8 -v '3.16.14.3' -- --with-system-v8

y estoy ejecutando 10.10 Yosemite


4

Han corregido este problema en la versión más reciente de libv8. Ver: https://github.com/cowboyd/libv8/issues/123

Debería instalar desde el repositorio de github, en rieles agregué una línea a mi archivo de gemas como esta gem "libv8", git: "git://github.com/cowboyd/libv8.git", submodules: true

EDITAR:

Esto aparentemente solo resuelve algunos de los problemas. Instalé la nueva versión de libv8, pero ahora el rubyracer todavía está buscando el otro, creo. Todavía lo estoy investigando.


3

Tuve el mismo problema en Yosemite. Mi solución es similar a la que aparece arriba.

Úselo gem uninstall libv8para eliminar todo lo que pueda estar instalado.

Deje therubyracer en su Gemfile, pero elimine cualquier referencia explícita a libv8.

Corre bundle install.

libv8 luego se instaló bien como dependencia.


Este era mi problema. Tenía varias versiones de libv8 luchando entre sí. Limpiarlos y dejar que el agrupador resolviera la dependencia fue lo correcto.
DavidMann10k

2

Respuesta actualizada para 2018.

Estoy en High Sierra, en 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/

Es lo que funcionó para mí.

El crédito es para @ coding-adicted por su respuesta original .


1

Después de horas de intentar simplemente actualizar ruby ​​funcionó:

brew install ruby 

y luego agregando lo siguiente al archivo gem:

gem 'libv8'  
gem 'therubyracer' 

1

Un aviso a cualquiera que pueda haber tenido mi problema: terminé desinstalando mi versión de ruby ​​en RVM y luego reinstalándola. Eso parecía usar las dependencias correctas en la última versión de las herramientas de xcode para compilar ruby.

rvm list
rvm uninstall ruby-x.x.x
rvm install ruby-x.x.x

0

Hice lo siguiente

gem install therubyracer

que ahora instala therubyracer 0.12.1que instala la dependencia libv8 (3.16.14.7 x86_64-darwin-14)que se instaló sin errores.

Hice esto usando el ruby 2.1.5que instalé a través de:

CC=/usr/bin/gcc rbenv install 2.1.5

que hice después de correr brew upgrade ruby-builds.

Después de instalar ruby 2.1.5, también ejecuté

gem upgrade --system

Llegar rubygems-update 2.4.5


0

esto también sucede debido a algunos conflictos con libv8, aunque puede simplemente asignar una versión a rubyracer y se instalará:

cambie lo siguiente en el archivo de gemas:

gema 'therubyracer', '~> 0.12.1'

y haz la instalación del paquete



0

Esta solución funcionó para mí siguiendo la solución de Jakub Troszok anterior con solo un cambio menor

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

Señale cuál es el cambio menor e intente explicar por qué está funcionando. Dado que está respondiendo una pregunta de 4 años, también debe agregar algunos detalles sobre las versiones aplicables (su respuesta podría no haber sido relevante en ese momento).
Michal

0

Usar el directorio de homebrew de v8 para --with-v8-dir=/usr/local/Cellar/v8@3.15/3.15.11.18_1, en lugar de /usr/local/opt/v8-315, es lo que funcionó para mí, al codificar la respuesta de adictos.

Esto es visible en el Summaryde la cerveza de comandos de instalación, brew install v8-315.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.