2012-01-27 14 views
5

Tengo problemas con la gema libv8 con ruby ​​1.9.3p0 (revisión 2011-10-30 33570) [x86_64-darwin10.8.0]. joya instalar libv8 trabaja muy bien y tengoproblema de instalación del paquete con libv8 y rieles

gem 'therubyracer' 

en mi Gemfile y esto tiene una dependencia de libv8 que se instala cuando hago un bundle install:

 
$ bundle exec gem list 

*** LOCAL GEMS *** 

actionmailer (3.1.3) 
actionpack (3.1.3) 
... 
libv8 (3.3.10.4 x86_64-darwin-10) 
... 

pero cuando lo ejecute:

 
$ rails s 
Could not find libv8-3.3.10.4 in any of the sources 
Run `bundle install` to install missing gems. 

no puede encontrar libv8 - ¿Esto es un problema de 32/64 bit? Si es así, ¿cómo lo resuelvo?

Respuesta

1

Sospecho que esto fue porque tenía una discrepancia de 32/64.

I resolvieron este con lo siguiente:

 
$ irb 
ruby-1.9.3-p0 :001 > `gem list`.each_line {|line| `sudo env ARCHFLAGS="-arch x86_64" gem install #{line.split.first}` 
+2

Si empaqueta sus gemas en proveedor/caché, al momento de la implementación tendrá las gemas empaquetadas para la arquitectura de su entorno de desarrollo, p. 32 bits u OSX. Si luego se despliega en un entorno de producción utilizando gemas empaquetadas, es posible que necesite versiones adicionales. –

0

¿Has probado bundle exec rails s? Es posible que haya un conflicto entre las gemas que ha instalado en su sistema y las gemas que se requieren para ejecutar su proyecto.

1

Otra solución es utilizar nodejs en lugar de therubyracer. Lo instala en el servidor usando apt-get/yum, por lo que no es necesario que Gemfile incluya execjs o therubyracer.

1

tuve un problema similar el despliegue de una caja x 86 dev a un servidor x86_64 (usando Capistrano)

Cuando hice el despliegue, tengo el mismo '¿No podría encontrar libv8-3.3.10.4 en cualquiera de las mensaje de las fuentes ¡Esto se debe a que al ejecutar 'paquete paquete' en una máquina x86 solo se copia la gema x86 en el directorio/vendor/cache!

Lo solucioné al agregar explícitamente el archivo gema linux x86_64 al directorio/vendor/cache, para que coincidiera con la arquitectura del servidor de implementación. La implementación funcionó bien después de eso.

1

En realidad se puede instalar esa versión en Mavericks:

joya instalar libv8 -v 3.11.8.17 - with-sistema-v8

Puede proporcionar cualquier versión joya libv8 desea instalar. .

Después de esto usted puede ser orientada problema con la instalación de therubyracer continuación

versión de actualización de Gemfile para que apunte a la última versión de esta manera:

gema "therubyracer", "~> 0.10.2"

y pude instalar correctamente la gema.

Si desea instalar manualmente la gema, puede utilizar:

joya instalar therubyracer --version "~> 0.10.2"

0

que resuelven este problema instalando nodejs (última versión). Lo que hace es que instala la biblioteca libv8 -dev junto con ella.Por lo tanto, en lugar de instalar la gema, lo que necesita es la biblioteca nativa.

Puede instalarlo directamente o instalar nodejs también en su sistema y se debe resolver el error anterior.

Cuestiones relacionadas