Recientemente he querido actualizar mi joya paquete pero se encontró con problemas de instalación con libv8 (requisito para therubyracer):

La instalación de libv8 (3.3.10.3) con extensiones nativas /usr/local/rvm/rubíes/ruby 1.9.3-cabeza/lib/ruby/site_ruby/1.9.1/rubygems/instalador.rb:552:en "rescate en el bloque en build_extensions': ERROR: no se pudo 
para construir joya de extensión nativa. (Gema::Instalador::ExtensionBuildError) 

/usr/local/rvm/rubíes/ruby 1.9.3-cabeza/bin/ruby extconf.rb 
La comprobación de Python...*** extconf.rb error *** 
No se pudo crear el Makefile debido a alguna razón, probablemente la falta de 
las bibliotecas necesarias y/o cabeceras. Compruebe la mkmf.archivo de registro para obtener más 
detalles. Usted puede necesitar opciones de configuración. 

He encontrado la emitir informe sobre therubyracer sitio de github y sugiere desinstalar y volver a instalar libv8, pero esto no funciona en mi Ubuntu 11.04 de la máquina. Cualquier idea o estoy atascado con la versión antigua por un tiempo?

  • También tienen este problema. También en Ubuntu 11.04.
  • Solución temporal: gem 'johnson'
  • Como puede ver, el problema es que no hay ninguna versión de linux en el rubygems.org: rubygems.org/gems/libv8
  • gem ‘therubyracer’, :plataforma => :ruby en el gemfile es truco, que resolvió mi problema y puede ser tuyo.
InformationsquelleAutor emrass | 2011-11-14

7 Comentarios

  1. 29

    Intento que uno por un poco de tiempo:

    gem 'therubyracer'
    gem 'libv8', '3.16.14.3'

    Debe ayudar.

    También es mejor con un nuevo preparador: gem install bundler --pre

    • De hecho, esto se soluciona el problema, gracias por toda su ayuda, Dmitry. También, parece una versión 3.3.10.3 es en la fabricación. Probablemente era mal momento para ejecutar el «paquete de actualización» esta noche …
    • Esto funcionó para mí, después de un «paquete de actualización»
    • Como funciona bien, esta pregunta puede ser cerrado ahora.
    • Yo había libv8 versión 3.16.14.7, degradar la gema 3.16.14.3 trabajó para mí. Gracias!
    • Esta solucionado mi problema con la compilación en OS X 10.10.4. Gracias!
  2. 29

    Tuve un problema similar en mi viejo Ubuntu 10.04 (x64)

    Después he actualizado el proyecto Gemfile tenía esas joyas

      gem 'libv8', '~> 3.11.8'
      gem "therubyracer", '>= 0.11.0beta1', :require => 'v8'

    Pero cuando me encontré con ‘bundle install» tengo un error

    Installing therubyracer (0.11.0beta1) with native extensions 
    Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
    /home/sseletskyy/.rvm/rubies/ruby-1.9.3-p194/bin/ruby extconf.rb 
    checking for main() in -lpthread... yes
    creating Makefile
    make
    compiling array.cc
    compiling script.cc
    compiling object.cc
    compiling constants.cc
    compiling signature.cc
    compiling value.cc
    compiling locker.cc
    compiling init.cc
    compiling heap.cc
    compiling date.cc
    compiling message.cc
    compiling accessor.cc
    compiling context.cc
    compiling exception.cc
    compiling backref.cc
    compiling trycatch.cc
    compiling gc.cc
    compiling handles.cc
    compiling stack.cc
    compiling template.cc
    compiling function.cc
    compiling primitive.cc
    compiling rr.cc
    compiling v8.cc
    compiling invocation.cc
    compiling string.cc
    compiling external.cc
    compiling constraints.cc
    linking shared-object v8/init.so
    /home/sseletskyy/.rvm/gems/ruby-1.9.3-p194/gems/libv8-3.11.8.2-x86_64-linux/vendor/v8/out/x64.release/obj.target/tools/gyp/libv8_base.a: could not read symbols: No such file or directory
    collect2: ld returned 1 exit status
    make: *** [init.so] Error 1
    Gem files will remain installed in /home/sseletskyy/.rvm/gems/ruby-1.9.3-p194/gems/therubyracer-0.11.0beta1 for inspection.
    Results logged to /home/sseletskyy/.rvm/gems/ruby-1.9.3-p194/gems/therubyracer-0.11.0beta1/ext/v8/gem_make.out
    An error occured while installing therubyracer (0.11.0beta1), and Bundler cannot continue.
    Make sure that `gem install therubyracer -v '0.11.0beta1'` succeeds before bundling.

    Aquí está una lista de los pasos que ha trabajado para mí, para resolver ese bloque rápidamente

    1. Desinstalar todas las versiones de las gemas «libv8′ y ‘therubyracer’

      > gema desinstalar therubyracer

      > gema desinstalar libv8

    2. Instalar therubyracer manualmente

      > gem install therubyracer

      Temprana: libv8-3.3.10.4-x86_64-linux.gema (100%)
      Buscar: therubyracer-0.10.1.gema (100%)
      La construcción de extensiones nativas. Esto podría tomar un tiempo…
      Instalado correctamente libv8-3.3.10.4-x86_64-linux
      Instalado correctamente therubyracer-0.10.1
      2 gemas instaladas
      La instalación de ri documentación para libv8-3.3.10.4-x86_64-linux…
      La instalación de ri documentación para therubyracer-0.10.1…
      La instalación de RDoc documentación para libv8-3.3.10.4-x86_64-linux…
      La instalación de RDoc documentación para therubyracer-0.10.1…

    3. Comprobar las versiones de instalado gemas

      > gem list | grep libv

      libv8 (3.3.10.4 x86_64-linux)

      > gem list | grep therubyracer

      therubyracer (0.10.1)

    4. Conjunto de esas versiones en Gemfile y ejecutar

      > paquete de instalar

    5. Resumen. Bueno, yo entiendo que en mi caso yo no las versiones más recientes y podría ser malo para la compatibilidad de amor. Pero al menos pude continuar con el desarrollo.

    • No experimentar este problema desde siempre, pero suena como una solución válida. Gracias por compartir.
    • gracias por tus comentarios 🙂 blackbird07
    • Pasos similares no funcionó para mí 🙁
    • Quitar manualmente e instalar como esta es la única cosa que trabajó para mí, demasiado. No puedo entender por qué dejar que Bundler instalar las gemas causa problemas, pero cuando lo hago manualmente como esta todo bien.
    • Es muy interesante hacer un seguimiento de 2 años respuesta es todavía real para la gente. Dos votos más y voy a vencer el aprobado respuesta 🙂
    • Sois las mejores!! Gracias. Ayudó mucho

  3. 7

    Ubuntu 11.04

    gem "therubyracer", '0.11.1'
    gem 'libv8'
    1. Desinstalar therubyracer y libv8 joya

    2. Actualización de la bundler joya versión

    3. Instalar lib8-dev paquete

      sudo apt-get install libv8-dev

    4. A continuación, ejecute este

      sudo apt-get install build-essential openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev automake libtool bisonte a la subversión imagemagick graphicsmagick libmagickcore-dev libmagickwand-dev

    5. Ahora instalar therubyracer manualmente

      gem install therubyracer

    6. Se instalará therubyracer y libv8 para usted.

    7. Ahora ejecutar bundle install

    Todos los pasos anteriores resuelto mi problema 🙂

  4. 1

    Me he topado con el mismo problema recientemente. Aquí es un poco de información útil a partir de la RoR.org ‘primeros pasos con Rails’ Guía:

    Compilación de CoffeeScript a JavaScript requiere un tiempo de ejecución de JavaScript y la ausencia de un tiempo de ejecución le dará una execjs de error. Generalmente, Mac OS X y Windows vienen con un tiempo de ejecución de JavaScript instalado. Rieles agrega el therubyracer gema Gemfile en una línea de comentarios para nuevas aplicaciones y se puede quitar si es necesario. therubyrhino recomendado es el tiempo de ejecución de JRuby los usuarios y se agrega de forma predeterminada para Gemfile en las aplicaciones generadas con JRuby. Usted puede investigar acerca de todos los admitidos tiempos de ejecución en ExecJS.

    Basado en lo que he leído en otros lugares parece que el soporte de Windows para el therubyracer joya, no está en el ‘3.3.10.4’ versión (posiblemente en una versión más reciente, no leer mucho, aunque). He instalado python 2.7 y tengo que compilar, pero usted todavía consigue errores más tarde durante el medio ambiente proceso de instalación.

    Así que todo se reduce a esto. Echa un vistazo therubyracer documentación aquí. ‘therubyracer’ proporciona estas características (:

    • Evaluar Javascript con Ruby
    • Incrustar el Rubí objetos en Javascript mundo
    • Manipular objetos de JavaScript y llamar a funciones JavaScript de Ruby
    • API compatible con el Ruby Rhino (para JRuby: http://github.com/cowboyd/therubyrhino)

    Si usted no REQUIERE de esas características, entonces usted debe cambiar a *nix y la caída de Windows para un desarrollo/entorno de producción. De lo contrario, usted puede hacer lo que yo hice y elegir no instalar el ‘therubyracer’ o ‘libv8’ (extraído de mi Gemfile). Yo no se basan en gran medida en JavaScript con el sitio que estoy experimentando este problema, así que ignoré ambas gemas y todo parece bien (hasta ahora).

    Espero que esto ayude a alguien en necesidad!

    • La pregunta original es de Ubuntu, no de windows.
  5. 1

    Ubuntu 12.04

    gem 'libv8', '3.11.8.3'
    gem 'therubyracer', '0.11.0beta5'

    Especificando las versiones anteriores resuelto mi problema con therubyracer.

    También como alguien anteriormente sugerido, he utilizado la última bundler:

    gem install bundler --pre
  6. 0

    Asegúrese de referencia ruby en su Gemfile

    gem 'therubyracer', :platform => :ruby

    y, a continuación, ejecute bundle update.

  7. 0

    El uso de estos comandos de terminal fijo para mí en Ubuntu 16.04

    sudo apt-get install g++
    sudo apt-get install build-essential

Dejar respuesta

Please enter your comment!
Please enter your name here