gem - error de instalación de therubyracer
(11)
De acuerdo con https://github.com/cowboyd/therubyracer/issues/420#issuecomment-253592865
gem uninstall therubyracer
gem uninstall libv8
brew uninstall v8
brew install v8
gem install libv8
gem install therubyracer
Me ayudó. Parámetros: ruby 2.3.3
, rails 4.2.9
Como puede ver a continuación, libv8 se instala bien, pero therubyracer no. Estoy usando Mac 10.7.4.
~/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1> gem install libv8
Building native extensions. This could take a while...
Successfully installed libv8-3.11.8.3
1 gem installed
Installing ri documentation for libv8-3.11.8.3...
Installing RDoc documentation for libv8-3.11.8.3...
~/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1> gem install therubyracer
Building native extensions. This could take a while...
ERROR: Error installing therubyracer:
ERROR: Failed to build gem native extension.
/Users/rdp/.rvm/rubies/ruby-1.9.3-p125/bin/ruby extconf.rb
checking for main() in -lobjc... *** 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/rdp/.rvm/rubies/ruby-1.9.3-p125/bin/ruby
--with-objclib
--without-objclib
/Users/rdp/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/mkmf.rb:381:in `try_do'': The compiler failed to generate an executable file. (RuntimeError)
You have to install development tools first.
from /Users/rdp/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/mkmf.rb:461:in `try_link0''
from /Users/rdp/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/mkmf.rb:476:in `try_link''
from /Users/rdp/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/mkmf.rb:619:in `try_func''
from /Users/rdp/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/mkmf.rb:845:in `block in have_library''
from /Users/rdp/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/mkmf.rb:790:in `block in checking_for''
from /Users/rdp/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/mkmf.rb:284:in `block (2 levels) in postpone''
from /Users/rdp/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/mkmf.rb:254:in `open''
from /Users/rdp/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/mkmf.rb:284:in `block in postpone''
from /Users/rdp/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/mkmf.rb:254:in `open''
from /Users/rdp/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/mkmf.rb:280:in `postpone''
from /Users/rdp/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/mkmf.rb:789:in `checking_for''
from /Users/rdp/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/mkmf.rb:840:in `have_library''
from extconf.rb:10:in `<main>''
Gem files will remain installed in /Users/rdp/.rvm/gems/ruby-1.9.3-p125/gems/therubyracer-0.10.1 for inspection.
Results logged to /Users/rdp/.rvm/gems/ruby-1.9.3-p125/gems/therubyracer-0.10.1/ext/v8/gem_make.out
Aquí está el mkmf.log
, que se encuentra en ~/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/gems/1.9/gems/therubyracer-0.10.1/ext/v8>
.
Opciones de edición de archivos Buffers Herramientas Ayuda
"/usr/bin/gcc-4.2 -o conftest -I/Users/rdp/.rvm/rubies/ruby-1.9.3-p125/include/ruby-1.9.1/x86_64-darwin11.3.0 -I/Users/rdp/.rvm/rubies/ruby-1.9.3-p125/include/ruby-1.9.1/rub/
y/backward -I/Users/rdp/.rvm/rubies/ruby-1.9.3-p125/include/ruby-1.9.1 -I. -I/Users/rdp/.rvm/usr/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -O3 -ggdb -Wextra -Wno-unused-/
parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wshorten-64-to-32 -Wimplicit-functio/
n-declaration -fno-common -pipe conftest.c -L. -L/Users/rdp/.rvm/rubies/ruby-1.9.3-p125/lib -L/Users/rdp/.rvm/usr/lib -L. -lruby.1.9.1 -lpthread -ldl -lobjc "
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: int main() {return 0;}
/* end */
En Mavericks, solo necesitas actualizar a therubyracer 0.12.0
En Mountain Lion 10.8, no viene preinstalado con un compilador de C. Tendrá que descargar e instalar el paquete de ''herramientas de línea de comando'' de Apple ellos mismos, y luego ejecutar which gcc
para confirmar que está instalado. Todo debería funcionar bien desde allí en adelante.
En OS X 10.7 encontré que el paquete "Herramientas de línea de comandos" no era suficiente, tuve que instalar el paquete completo de XCode, luego funcionó la instalación de gem.
He tenido exactamente el mismo problema hasta ahora.
Este link me salvó
para resumir, necesitas hacer esto:
$ gem uninstall libv8
$ gem install therubyracer
Antes de solucionar este problema, tenía v8 instalado en mi mac. No sé si esto ayudó, ya que parece tener algo que ver con el intérprete js, pensé que podría ser útil.
La solución que funcionó para mí fue unir estos pasos en 10.7.4
export CC=gcc-4.2
sudo ln /usr/bin/gcc /usr/bin/gcc-4.2
gem uninstall libv8
gem install therubyracer
Mac 10.10.5, Ruby 2.1.0 esto funcionó para mí:
gem uninstall libv8
gem uninstall therubyracer
brew upgrade gcc
brew install v8
bundle config --local build.libv8 --with-cxx=/usr/local/bin/gcc-6
gem install libv8 -v ''3.16.14.17'' -- --with-system-v8
gem install therubyracer -- --with-v8-dir=/usr/local/opt/v8-315
bundle install # worked !
Para Linux:
El código a continuación es, por supuesto, correcto
$ gem uninstall libv8
$ gem install therubyracer
Pero a veces no ayuda porque no has programado. AL PRINCIPIO necesitas instalar make
. Para hacer esto, ejecuta:
sudo apt-get install build-essential
Y solo después de eso:
gem install therubyracer
Para un proyecto anterior, tuve que usar la versión 0.10.1 de Rubyracer en Mavericks (el programa de arranque depende de ello)
Entonces tuve que usar una versión anterior de gcc
edite su .zshrc o .bashrc
export CC=/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/gcc-4.2 export CXX=/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/g++-4.2 export CPP=/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/cpp-4.2
asegúrese de haber desinstalado todas las versiones anteriores de libv8
gem uninstall libv8
instala tu versión de therubyracer
gem install therubyracer -v=0.10.1
Puede usar el Libv8 de la infusión en lugar del de gema. Puedes hacerlo siguiendo los siguientes comandos:
$ gem uninstall libv8
$ brew install v8
$ gem install therubyracer
Tuve el mismo problema cuando actualicé desde OSX Mountain Lion a OSX Mavericks.
La actualización de ruby-1.8.7-p354 a ruby-1.8.7-375 me gustó. Si está en ruby-1.93-p125, puede intentar actualizar a 1.9.3-rc1 (que ya está por encima de p484)
libv8 (3.16.14.3-x86_64-darwin-13) y las gemas de therubyracer (0.12.0) instaladas sin problemas.
suponiendo que usa rbenv:
rbenv install 1.9.3-rc1
rbenv rehash
rbenv shell 1.9.3-rc1
bundle install