ruby-on-rails ruby windows libv8

ruby on rails - Error al instalar libv8: ERROR: no se pudo construir la extensión nativa de la gema



ruby-on-rails windows (12)

Cómo resolver el problema de libv8 / therubyracer

Me encontré con un problema similar en el que después de instalar libv8, se produce un error al instalar therubyracer. Aquí está mi solución:

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

- ver error al instalar therubyracer -

$ gem uninstall libv8 $ brew install v8 $ gem install therubyracer $ bundle install

- ver error al instalar libv8 -

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

Hice un proyecto de rieles con,

rails new test_bootstrap.

tenido éxito

movido al directorio del proyecto y agregado las gemas

gem "therubyracer" gem "less-rails" #Sprockets (what Rails 3.1 uses for its asset pipeline) supports LESS gem "twitter-bootstrap-rails"

y correr

bundle install

después de eso, tengo este error.

Installing libv8 (3.16.14.3) Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension. c:/RailsInstaller/Ruby1.9.3/bin/ruby.exe extconf.rb creating Makefile 지정된 경로를 찾을 수 없습니다. 지정된 경로를 찾을 수 없습니다. 지정된 경로를 찾을 수 없습니다. c:/RailsInstaller/Ruby1.9.3/lib/ruby/ge ms/1.9.1/gems/libv8-3.16.14.3/ext/libv8/builder.rb:58:in `setup_python!'': libv8 requires python 2 to be installed in order to build, but it is currently not available (RuntimeErr or) from c:/RailsInstaller/Ruby1.9. 3/lib/ruby/gems/1.9.1/gems/libv8-3.16.14.3/ext/libv8/builder.rb:42:in `block in build_lib v8/builder.rb:42:in `block in build_libv8!'' from c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/libv8-3.16.14.3/ext/lib v8/builder.rb:40:in `chdir'' from c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/libv8-3.16.14.3/ext/lib v8/builder.rb:40:in `build_libv8!'' from c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/libv8-3.16.14.3/ext/lib v8/location.rb:24:in `install!'' from extconf.rb:7:in `<main>'' Gem files will remain installed in c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/l ibv8-3.16.14.3 for inspection. Results logged to c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/libv8-3.16.14.3/ex t/libv8/gem_make.out An error occurred while installing libv8 (3.16.14.3), and Bundler cannot continue. Make sure that `gem install libv8 -v ''3.16.14.3''` succeeds before bundling.

lo siento por algunos coreanos. Dice: No puede encontrar el camino elegido o algo así.

e intenté ejecutar este comando

gem install libv8 -v ''3.16.14.3''

lanzando el mismo error.


Con Homebrew esto me ayuda a resolver este error.

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 rubyracer Github problemas.


Funciona para mi. Pon eso en tu Gemfile

gema ''libv8'', ''~> 3.16.14.7''


Mi problema no estaba relacionado con therubyracer en absoluto, solo la gema libv8 y como @ rishav-bhardwaj apuntó --with-system-v8 no funcionó, en cambio tuve que ejecutar

bundle update

entonces

bundle install

y finalmente

Bundle complete!

¡El error se ha ido!

Gem::Ext::BuildError: ERROR: Failed to build gem native extension. An error occurred while installing libv8 (3.16.14.7), and Bundler cannot continue. Make sure that `gem install libv8 -v ''3.16.14.7''` succeeds before bundling.


No creo que necesites la gema de therubyracer en las ventanas. Es un tiempo de ejecución de JavaScript que utiliza el motor V8. Por lo tanto, está haciendo un intento de instalar libv8 .

Puede eliminar la gema de su Gemfile de forma segura.

Rails está feliz de usar el tiempo de ejecución que pueda encontrar. execjs , nodejs etc. son todas las opciones posibles.

Microsoft ya incorpora el tiempo de ejecución de JScript para javascript en Windows, y Rails lo usa. Vea esto para más


Otra solución para solucionar el problema es separarlos en el Gemfile

group :production do gem ''libv8'', ''~> 3.11.8.3'' gem ''therubyracer'', :platform => :ruby end

Y luego ejecute el comando paquete : paquete de instalación - sin producción


Probé la solución que figura más arriba en el comando que se ve muy bien para la instalación de la gema individual, pero para los usuarios de bundler - debe usar la configuración del paquete

Utilizar

bundle config build.libv8 --with-system-v8

y

bundle config build.therubyracer --with-system-v8

configurar el bundler para tomar los parámetros que se utilizarán al instalar gema específica


Prueba con

gema "therubyracer", "~> 0.10.2" en Gemfile

E instalará Gev dependiente libv8 (3.3.10.4) y se solucionó el problema de la falla de extensión nativa de la construcción.


Se 3.16.14.7 problema de libv8 3.16.14.7 utilizando el siguiente comando:

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

Y luego la bundle install completó con éxito.


Siento que esto tiene menos que ver con libv8 y más que ver con therubyracer.

recibí el mismo error al ejecutar una instalación de paquete en una aplicación de rieles. Si se ha encontrado con esto de manera similar, intente instalar la gema fuera del paquete de la siguiente manera:

gem install therubyracer

luego ejecute bundle install. Espero que esto funcione para ti también.


Tampoco pude instalar esta gema en lugar de usar

--with-system-v8

una vez que intenté hacer la actualización del paquete que funcionó bien para mí


prueba este:

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

Nota: Debido a que libv8 es la interfaz para el motor V8 utilizado por therubyracer, es posible que necesite usar libv8, incluso si ya tiene V8 instalado. Si desea usar su propia instalación de V8, en lugar de tenerla construida para usted, use la opción --with-system-v8 .

Para más información, puede consultar la documentación de libv8 en github