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