Error al instalar libv8: ERROR: no se pudo construir la extensión nativa de la gem

Hice un proyecto de Rails con,

rails new test_bootstrap. 

tenido éxito

movido al directorio del proyecto y agregado las gems

 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 `' 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.

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

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 

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.

Probé la solución que figura más arriba en el comando que se ve muy bien para la instalación de la gem 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 gem específica

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

Puede eliminar la gem 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

Tampoco pude instalar esta gem en lugar de usar

 --with-system-v8 

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

Mi problema no estaba relacionado con therubyracer en absoluto, solo la gem 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.

Prueba con

gem “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.

Funciona para mi. Pon eso en tu Gemfile

gem ‘libv8’, ‘~> 3.16.14.7’

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 Rails. Si se ha encontrado con esto de manera similar, intente instalar la gem fuera del paquete de la siguiente manera:

gem install therubyracer

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