2012-07-31 27 views
7

He estado trabajando duro en esto. He seguido sugerencias en varias publicaciones relacionadas, pero fue en vano.¿Cómo instalo la gema Ruby libv8 en una instalación nueva de Mountain Lion?

Estoy comenzando desde una nueva instalación de Mountain Lion, instalé las herramientas de línea de comandos y he instalado Ruby 1.8.7 con éxito en base a algunas otras publicaciones que he encontrado para instalar gcc-4.2 a través de Homebrew y agregando un enlace simbólico a /usr/bin/gcc-4.2.

Ahora, sin embargo, no puedo instalar libv8 correctamente. El siguiente error es por lo que he obtenido de las sugerencias existentes.

¿Alguna entrada adicional?

Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension. 

     /Users/Eric/.rbenv/versions/1.8.7-p352/bin/ruby extconf.rb 
creating Makefile 
Unable to find a compiler officially supported by v8. 
It is recommended to use GCC v4.4 or higher 
Traceback (most recent call last): 
    File "build/gyp/gyp", line 18, in <module> 
    sys.exit(gyp.main(sys.argv[1:])) 
    File "build/gyp/pylib/gyp/__init__.py", line 480, in main 
    generator.GenerateOutput(flat_list, targets, data, params) 
    File "build/gyp/pylib/gyp/generator/make.py", line 2085, in GenerateOutput 
    part_of_all=qualified_target in needed_targets) 
    File "build/gyp/pylib/gyp/generator/make.py", line 756, in Write 
    self.xcode_settings, self.Absolutify, self.Pchify)) 
    File "build/gyp/pylib/gyp/generator/make.py", line 1132, in WriteSources 
    cflags = self.xcode_settings.GetCflags(configname) 
    File "build/gyp/pylib/gyp/xcode_emulation.py", line 258, in GetCflags 
    sdk_root = self._SdkPath() 
    File "build/gyp/pylib/gyp/xcode_emulation.py", line 247, in _SdkPath 
    return os.path.join(self._GetSdkBaseDir(), '%s.sdk' % sdk_root) 
    File "build/gyp/pylib/gyp/xcode_emulation.py", line 233, in _GetSdkBaseDir 
    raise Exception('Error %d running xcode-select' % job.returncode) 
Exception: Error 2 running xcode-select 
make: *** [out/Makefile.x64] Error 1 
Using compiler: g++ 
GYP_GENERATORS=make \ 
    build/gyp/gyp --generator-output="out" build/all.gyp \ 
        -Ibuild/standalone.gypi --depth=. \ 
        -Dv8_target_arch=x64 \ 
        -S.x64 -Dhost_arch=x64 
xcode-select: Error: No Xcode is selected. Use xcode-select -switch <path-to-xcode>, or see the xcode-select manpage (man xcode-select) for further information. 



Gem files will remain installed in /Users/Eric/Development/par8o/vendor/bundle/ruby/1.8/gems/libv8-3.11.8.3 for inspection. 
Results logged to /Users/Eric/Development/par8o/vendor/bundle/ruby/1.8/gems/libv8-3.11.8.3/ext/libv8/gem_make.out 
An error occured while installing libv8 (3.11.8.3), and Bundler cannot continue. 
Make sure that `gem install libv8 -v '3.11.8.3'` succeeds before bundling. 
+0

¿Ha instalado Xcode. Si no, intente instalar xcode – Josnidhin

+1

No lo he hecho y preferiría evitarlo si puedo. ¿No debería el paquete de herramientas de línea de comandos cubrir esto? –

+0

Podría ser posible, no estoy muy seguro – Josnidhin

Respuesta

-2

gemas diferentes requieren diferentes versiones de GCC, por lo que este puede o no funcionar para todas las gemas, pero estos enlaces simbólicos resuelven el problema para el JSON, EventMachine y gemas libv8 el león de montaña con Xcode 4.4 instalado.

sudo ln -s /usr/llvm-gcc-4.2/bin/llvm-gcc-4.2 /usr/bin/gcc-4.2

sudo ln -s /usr/llvm-gcc-4.2/bin /llvm-gcc-4.2/usr/bin/g++-4.2

+0

Esto no funcionó para mí ... –

+0

Las diferentes versiones de RUBY requieren compiladores diferentes. 1.9.3 y 1.9.2 requieren diferentes versiones de GCC, respectivamente. Para 1.9.3, el GCC que viene con Mountain Lion debería estar bien, pero si quieres Ruby 1.9.2m, tienes que instalar GCC 4.2 – tesserakt

15

El acuerdo es con ruby ​​1.8.7. Probablemente necesites esta joya para ejecutar therubyracer. Y para que esto funcione necesita instalar therubyracer joya de la siguiente manera:

RUBYOPT=-rrubygems gem install therubyracer 

Esto instalará tanto therubyracer y gemas libv8.

fuente: http://coderwall.com/p/y1djxq

+1

Gracias, me diste un poco de comida para lluvia de ideas ... –

0

Utilizando el RUBYOPT = sugerencia -rrubygems anteriormente trabajado para mí, pero tuve que desinstalar mis joyas y therubyracer libv8 existentes en primer lugar.

0

Después de muchos intentos fallidos de diversos métodos que acabo finalmente descargado Xcode y como el mensaje de error indica, que va a hacer el truco

3

En mi caso la compilación falló, debido a problemas con libtool. El error fue libtool: unrecognized option '-static' al instalar la gema libv8.

El problema era que mi Macports-Installation estaba teniendo un libtool que obviamente no funcionaba. Y el macports-Directory en $PATH se encontraba antes de los directorios regulares a los que se llamaba el libtool incorrecto.

Eliminando macports-Directorios de la variable de entorno PATH hizo el truco: se usó el libtool de XCode y todo fue bien.

+0

¿Puedes ser un un poco más específico sobre cómo hiciste esto? Soy bastante nuevo en este proceso. – flyingarmadillo

0

Ninguna de las respuestas anteriores funcionó para mí. Esto es lo que hizo:

gem install libv8 -v '3.11.8.3' 
gem install therubyracer -v '0.11.0beta5' 

ref: https://coderwall.com/p/s8ofka

mi sistema:

OSX Mountain Lion 
Ruby 1.9.3 
2

Después de que tuve este problema en OS X 10.7.5, la entrada siga Gemfile trabajó para mí:

gem "libv8", '3.11.8.13' 

> ruby -v 
ruby 1.9.3p327 (2012-11-10 revision 37606) [x86_64-darwin11.4.2] 
0

En primer lugar tratar de resolver el problema mediante el uso de:

RUBYOPT=-rrubygems gem install therubyracer 

Si el error persiste, actualizar sus gemas:

bundle update 
3

I tuvo este problema y encontró la solución here

En resumen, instale v8 usted mismo - si tiene home-bre w puede ejecutar

brew install v8 

continuación, utilizar el V8 del sistema al instalar

gem install libv8 -- --with-system-v8 
+2

'gem install libv8 -v = 3.16.14.2 --with-system-v8' esto funcionó para mí (nótese el '-') adicional – Florin

+0

Gracias @Florin, eso fue un error tipográfico en mi parte :) – cadlac

Cuestiones relacionadas