Estoy intentando instalar las siguientes versiones de gemas en Mavericks
- libv8 (3.16.14.3)
- terubyracer (0.12.1)
Obviamente, las gemas therubyracer dependen de libv8.
1) Instalación de libv8
¿Qué es libv8? Mi poco de investigación parece indicar que es una especie de biblioteca de JavaScript utilizada por Google Chrome.
Tenía problemas para instalarlo, pero esta gran publicación tenía mi error y una respuesta bien explicada sobre cómo evitarlo.
Así que instalé libv8
con
gem install libv8 -- --with-system-v8
Tengo entendido que esto instala la gema pero usa la instalación de mi sistema local de la biblioteca v8 en lugar de ... ¿la versión que viene con la gema? De cualquier manera, tuvo éxito.
2) Instalación de therubyracer
Durante el siguiente paso, tuve problemas para instalar therubyracer
gem. No estoy muy seguro de qué hace esta gema, solo que es una dependencia de un proyecto de rieles que estoy tratando de hacer bundle install
.
Me da el siguiente error:
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
/Users/jeeves.butler/.rvm/rubies/ruby-1.9.2-p290/bin/ruby extconf.rb
checking for main() in -lpthread... yes
checking for main() in -lobjc... yes
checking for v8.h... no
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers. Check the mkmf.log file for more
details. You may need configuration options.
Provided configuration options:
--with-opt-dir
--with-opt-include
--without-opt-include=${opt-dir}/include
--with-opt-lib
--without-opt-lib=${opt-dir}/lib
--with-make-prog
--without-make-prog
--srcdir=.
--curdir
--ruby=/Users/jeeves.butler/.rvm/rubies/ruby-1.9.2-p290/bin/ruby
--with-pthreadlib
--without-pthreadlib
--with-objclib
--without-objclib
--enable-debug
--disable-debug
--with-v8-dir
--without-v8-dir
--with-v8-include
--without-v8-include=${v8-dir}/include
--with-v8-lib
--without-v8-lib=${v8-dir}/lib
/Users/jeeves.butler/.rvm/gems/ruby-1.9.2-p290/gems/libv8-3.16.14.3/ext/libv8/location.rb:50:in
'configure': You have chosen to use the version of V8 found
on your system (Libv8::Location::System::NotFoundError)
and *not* the one that is bundled with the libv8 rubygem. However,
it could not be located. please make sure you have a version of
v8 that is compatible with 3.16.14.3 installed. You may
need to special --with-v8-dir options if it is in a non-standard
location
thanks,
The Mgmt
from /Users/jeeves.butler/.rvm/gems/ruby-1.9.2-p290/gems/libv8-3.16.14.3/lib/libv8.rb:7:in `configure_makefile'
from extconf.rb:32:in `<main>'
extconf failed, exit code 1
Gem files will remain installed in /Users/jeeves.butler/.rvm/gems/ruby-1.9.2-p290/gems/therubyracer-0.12.1 for inspection.
Results logged to /Users/jeeves.butler/.rvm/gems/ruby-1.9.2-p290/extensions/x86_64-darwin-13/1.9.1/therubyracer-0.12.1/gem_make.out
Por lo que puedo reunir, elegí instalar libv8
usando mi biblioteca V8 local en lugar de lo que se proporcionó libv8
, pero ahora no se pudo ubicar la instalación local.
- ¿Cómo verifico si realmente tengo V8 instalado y cómo lo ubico?
- Probé algunos de los indicadores especificados, ninguno de ellos parecía apuntar la gema al directorio de instalación correcto
- Este podría ser un tema aparte, pero ¿cuál es
extconf.rb
? Lo he visto en algunos lugares. ¿Y qué está tratando de hacer con elgcc
compilador en específico?
¡¡Gracias!!
EDITAR:
Probé esta solución de desinstalar libv8 y reinstalación de vía
brew install
. También se mencionó en un par de preguntas similares. Sin suerte.También probé el
CC
,CXX
yCPP
variables de entorno como se describe aquí , aunque no creo que tenga ningún efecto, ya que ya estaba recogiendo migcc v4.6
compilador.
fuente
Respuestas:
Estos pasos funcionaron para mí.
SO: Maverick Ruby: 2.1.1
gem uninstall libv8 gem install therubyracer -v '0.11.3' gem install libv8 -v '3.11.8.13' -- --with-system-v8
fuente
Para aquellos que enfrentan este problema en OS X El Capitan, esta solución de un hilo de problemas de therubyracer fue lo que finalmente funcionó para mí:
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
También había corrido
brew install gcc
antes, pero no estoy seguro de si esto era realmente necesario.fuente
gem install libv8 -v 'A.B.C.D'
según corresponda. Es 3.16.14.15 al momento de escribir este artículo.gem install therubyracer -v 'x.x.x' -- --with-v8-dir=/usr/local/opt/v8-315
Intente primero desinstalar libv8 gem, luego instale rubyracer y luego libv8
gem uninstall libv8 gem install therubyracer gem install libv8 -- --with-system-v8
fuente
libv8
antestherubyracer
funciona mejor.La solución de Tertom publicada en github me lo resolvió, después de haber probado todas las demás soluciones propuestas en el problema respectivo de github y aquí.
Tenía exactamente la misma configuración del sistema.
Esto está en el capitan, por lo que no es una respuesta exacta a la pregunta, pero la gente puede encontrar útil esta información.
Lo estoy citando aquí por visibilidad:
fuente
bundle config build.libv8 --with-system-v8
fue la clave para mí. ¡Gracias!brew link --force v8-315
funcionó para mí. 2/2020 - MacOS 10.15.3. - Ruby versión 1.9.3 - Bundler 1.16.4 - libv8 versión 13.16.14.19Para todos ustedes que usan macOS 10.15, brew ha cambiado, por lo que necesitarán ejecutar estos comandos.
brew install v8@3.15 gem install libv8 -v 'YOUR_VERSION' -- --with-system-v8 gem install therubyracer -v 'YOUR_VERSION' -- --with-v8-dir=/usr/local/opt/[email protected] bundle install
fuente
Las respuestas anteriores no me funcionaron; mi configuración de empaquetado se ha
disable-shared-gems
habilitado, lo que causa problemas adicionales.Estoy usando Yosemite 10.10.1, Rails 3.2.xy Ruby 1.9.3p550.
El siguiente fragmento de mi me
bin/setup
ha solucionado el problema.if ! bundle show therubyracer; then bundle config build.libv8 --with-system-v8 gem install --install-dir vendor/bundle libv8 -v 3.16.14.7 gem install libv8 -v 3.16.14.7 gem install --install-dir vendor/bundle therubyracer fi
fuente
Encontré una solución al problema anterior.
Esto es más una compatibilidad entre libv8 y therubyracer.
gem install libv8 -v '3.3.10.4' -- --with-system-v8 gem install therubyracer -v '0.10.2'
Esto debería funcionar bien ya que ambas versiones son compatibles conmigo. Inicialmente, estaba intentando instalar la versión 0.12.0 para therubyracer y estaba enfrentando el problema. Una vez que cambié a la versión 0.10.2, todo funcionó bien.
Mi sistema operativo actual: Mavericks
fuente
Tengo este problema
MacOS Mojave 10.14.2
y pude solucionarlo cuando encontré dóndev8-315
se instaló el paquete y cuál era el nombre de la carpeta. En mi caso, fue aquí/usr/local/opt/[email protected]
.Para solucionar esto, he ejecutado a continuación:
brew install v8-315 gem install libv8 -v '3.16.14.15' -- --with-system-v gem install therubyracer -v '0.12.2' -- --with-system-v8 --with-v8-dir=/usr/local/opt/[email protected] bundle install
fuente
Después de romperme la cabeza durante casi dos días, esto funcionó para mí.
rvm install 2.2.2 gem install rails bundle install
fuente
No pude hacer que therubyracer se compilara en macOS Catalina 10.15 debido a la dependencia de libv8, a pesar de instalar el x64 (variante de 64 bits) de libv8.
La solución para mí fue cambiar de therubyracer a mini_racer, la gema mini_racer instalada (sin necesidad de construir localmente) y, ¡listo! Podría continuar.
¡Intentalo!
fuente
En mi caso
MacOS: Catalina , Ruby: 2.3.3 , Usando rbenv (no RVM), Necesité la versión de therubyracer: 0.12.3 (No importa)
Probé toda la solución, pero lo que funcionó para mí, por favor, no copie ciegamente la solución de pegar (porque lo hice en mi caso), primero lea y luego cambie las versiones en los siguientes comandos si necesita alguno. La mayoría de los comandos son comunes en la mayoría de las respuestas existentes, pero lo que funcionó para mí
gem install therubyracer -- --with-v8-dir=$(brew --prefix v8-315)
lugar degem install therubyracer -- --with-v8-dir=/usr/local/opt/v8-315
Gracias a Junji Zhi por su comentario en esta respuesta1. brew install gcc 2. brew tap homebrew/versions (If it wont work then below 2 steps, for latest MacOS version) 2.a. brew tap brewsci/bio 2.b. brew tap brewsci/science 3. brew install v8-315 (uninstall if v8 installed previously without '-315') 4. gem install libv8 -v '3.16.14.19' -- --with-system-v8 (Be careful with the libv8 version mentioned in this command, replace version number with one required) 5.a. gem install therubyracer -- --with-v8-dir=/usr/local/opt/v8-315 (If it does not work then try below one, In my case below command worked) 5.b. gem install therubyracer -- --with-v8-dir=$(brew --prefix v8-315)
Listo, luego continúe con su
bundle install
Nota : Si bien gem install therubyracer , cheque de la versión de libv8 se está instalando, si es diversa de lo que he mencionado en el paso 4 a continuación, su therubyracer no puede instalar, por lo que acaba de hacer una cosa,
gem uninstall libv8
a continuación, repita el paso 4 por cambiar la versión , lo que puede ver en la consola mientras instala therubyracerfuente
Esto me ha funcionado:
gem install libv8 -v '3.16.14.17' -- --with-system-v8 brew install v8-315 gem install therubyracer -v '0.12.3' --source 'http://rubygems.org/' -- --with-v8-dir='/usr/local/opt/[email protected]'
Para el último comando, verifique la salida de,
brew --prefix v8-315
en mi caso, lo fue/usr/local/opt/[email protected]
.fuente
Noté que cuando encontramos un problema:
Gem::Ext::BuildError: ERROR: Failed to build gem native extension
A continuación, debe instalar build-essential
sudo apt install build-essential
Me funciona con los problemas de instalación de mini_race.
fuente
Acabo de ejecutar la actualización del paquete y funcionó para mí.
Obs .: Usando Ruby 2.3.0
fuente