es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo instalar therubyracer en aarch64 usando la gema libv8 preinstalada y las dependencias precompiladas de v8:

He estado intentando instalar la gema therubyracer en un dispositivo aarch64. Compilé cruzadamente v8 desde la fuente (tengo una carpeta arm64.release resultante de la compilación) pero no sé dónde ponerlo. También logré instalar exitosamente libv8 descargando un archivo .gem de la versión que necesitaba para arm desde rubygems y lo instalé ejecutando gem install path_to_gem. También agregué esto al gemfile:

gem 'libv8', path: '~/.gem/ruby/1.9.1/gems/libv8-3.16.14.11'

Sin embargo, cuando ejecuto bundle install e intenta instalar therubyracer, obtengo errores porque intenta compilar la dependencia nuevamente, aunque ya está instalada. Supongo que no detecta que libv8 ya está instalada. También no sé dónde poner v8 compilado cruzadamente para que mi sistema lo detecte. Estoy usando una versión de arm64 ubuntu.

Haciendo gem install therubyracer -v '0.12.2' -- --with-system-v8 tampoco funciona y sigue intentando compilar v8 de todos modos.

Ten en cuenta que necesito que todo sea compatible con ruby 1.9.3 y rails 3.2, y necesito usarlo en un dispositivo aarch64/arm64.

Intenté preguntar en el repositorio de therubyracer en github pero no obtuve respuesta ya que es bastante antiguo.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Solución:

    Parece que hay algunas cosas que debes tener en cuenta para instalar la gema therubyracer en un dispositivo aarch64. Aquí están los pasos que puedes seguir:

    • Primero, asegúrate de haber compilado correctamente v8 desde el código fuente. La carpeta resultante arm64.release debe contener los archivos de biblioteca compilados.
    • A continuación, debes asegurarte de que tu sistema pueda encontrar estos archivos. Una forma de hacer esto es establecer la variable de entorno LD_LIBRARY_PATH en la ruta donde se encuentran los archivos de biblioteca v8 compilados. Por ejemplo, si tu carpeta arm64.release se encuentra en /home/user/v8, puedes establecer LD_LIBRARY_PATH de la siguiente manera:
      export LD_LIBRARY_PATH=/home/user/v8:$LD_LIBRARY_PATH
      

      Esto agregará la ruta a los archivos de biblioteca v8 compilados a la ruta de búsqueda de bibliotecas del sistema.

    • Ahora que tu sistema puede encontrar los archivos de biblioteca v8 compilados, necesitas indicarle a la gema therubyracer que los use en lugar de intentar compilar v8 desde el código fuente. Puedes hacer esto especificando la ruta de los archivos v8 compilados usando la opción –with-v8-dir al instalar la gema. Por ejemplo:

      gem install therubyracer -v '0.12.2' -- --with-v8-dir=/home/user/v8
      

      Esto le indicará a la gema que use los archivos de biblioteca v8 ubicados en /home/user/v8 en lugar de intentar compilar v8 desde el código fuente.

    • Por último, debes actualizar tu Gemfile para incluir la gema therubyracer y especificar la ruta de la gema libv8 que ya has instalado. Puedes hacer esto de la siguiente manera:

      gem 'therubyracer', '0.12.2', :require => 'v8'
      gem 'libv8', path: '~/.gem/ruby/1.9.1/gems/libv8-3.16.14.11'
      

      Esto incluirá las gemas therubyracer y libv8 en tu proyecto y le indicará a la gema therubyracer que requiera la biblioteca v8.

    Siguiendo estos pasos, deberías poder instalar y utilizar la gema therubyracer con éxito en tu dispositivo aarch64. ¡Buena suerte!

Comments are closed.