¿Por qué no puedo instalar Rails en Lion usando RVM?

Me estoy encontrando con problemas al intentar instalar Rails en OS X Lion usando RVM.

Hasta ahora, he hecho lo siguiente:

  1. Instalado Mac OS X Lion Versión 10.7 (Build 11A459e).
  2. Instalado XCode 4.1 Developer Preview 5.
  3. RVM instalado.
  4. Se instaló una versión 1.8.7 de Ruby a través de RVM utilizando el comando rvm install 1.8.7 . Nota: Necesito usar 1.8.7 y no 1.9.2.
  5. Cambiado a la versión 1.8.7 de Ruby usando el comando rvm 1.8.7 .
  6. Creó un nuevo gemset usando el comando rvm gemset create rails3 .
  7. Cambiado al nuevo gemset usando el comando rvm use 1.8.7@rails3 .
  8. Para instalar Rails, ejecuté el comando gem install rails pero obtuve el siguiente error:

    /Users/m/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/timeout.rb:60: [BUG] Error de segmentación

El mismo error ocurre cuando bash ejecutar cualquier comando de gem, así que no creo que sea realmente un problema con Rails.

A juzgar por los enlaces a continuación, no parezco ser la única persona que tiene este problema:

http://twitter.com/#!/pingles/status/66261101351927809 y https://github.com/carlhuda/bundler/issues/1058

¡Arreglado!

La respuesta fue en realidad en uno de los enlaces que publiqué arriba. Antes de instalar una versión de ruby ​​(rvm install 1.8.7) necesitaba ejecutar ” export CC=/usr/bin/gcc-4.2 “. Con eso en su lugar, todo transcurrió sin problemas.

Si no desea que CC exporte permanentemente, puede hacerlo CC=/usr/bin/gcc-4.2 rvm install 1.8.7

Si ya ha instalado ruby ​​1.8.7. Simplemente haz CC=/usr/bin/gcc-4.2 rvm reinstall 1.8.7

Si ha instalado Xcode 4.2, en realidad ya no instala LLVM gcc, por lo que debe agregarlo. Por alguna razón, la degradación a 4.1 después de que haya instalado 4.2 no funciona correctamente (al menos no fue así para mí y otros tuvieron problemas similares).

Después de un poco de paliza, esto es lo que finalmente funcionó para mí:

  1. Instalar Xcode 4.2 desde el App Store
  2. Instala darwin gcc usando el instalador OSX gcc
  3. Instala REE asegurándote de eliminar cualquier vestigio de bashs previos:

Cierre cualquier ventana de terminal abierta, abra una nueva y

 rvm remove ree export CC=/usr/bin/gcc-4.2 rvm install ree 

Esto funcionó para mí con rvm 1.8.6, OS X 10.7.2 y gcc-4.2 versión 4.2.1 (Apple comstack 5666).

Si ya ha instalado Xcode 4.1, resista el impulso de actualizar a 4.2 y debería estar bien.

Si eso aún no funciona, agregue –force. Entonces esto se convierte en:

CC=/usr/bin/gcc-4.2 rvm install ruby-1.8.7 --force

Asegúrese de eliminar 1.8.7 si ya lo ha instalado antes de usar ” export CC=/usr/bin/gcc-4.2 ” haciendo ” rvm remove 1.8.7

Tuve el mismo problema en mi sistema. Instalé las herramientas de línea de comandos de Xcode de Apple que se envía con el comstackdor LLVM y sin un LLVM gratuito.

Ruby 1.8.7 no funcionará con un comstackdor LLVM ni siquiera con CC=clang , por lo que la instalación de un gcc libre de LLVM resuelve el problema.

Hay varias opciones enumeradas aquí:

https://github.com/mxcl/homebrew/wiki/Custom-GCC-and-cross-compilers

Para resumir, instale GCC v4.2 con Homebrew :

 brew install https://raw.github.com/Homebrew/homebrew-dupes/master/apple-gcc42.rb 

y luego instala ruby ​​1.8.7:

 CC=gcc-4.2 rvm install 1.8.7 

En lugar de ” export CC=/usr/bin/gcc-4.2 “, ” export CC=gcc ” (se debe instalar xCode 4.2.x).

Comprueba qué versión de gcc tienes así:

 ls -Al `which gcc-4.2` 

Seguí las instrucciones aquí: http://robots.thoughtbot.com/post/27985816073/the-hitchhikers-guide-to-riding-a-mountain-lion

 brew update brew tap homebrew/dupes brew install apple-gcc42 

Luego reinstala:

Verifique nuevamente cuál es su ruta a gcc (para usar para CC =):

 ls -Al `which gcc-4.2` 

(opcional) Puede configurar esto en su .bashrc por ejemplo:

 export CC=/usr/bin/gcc-4.2 

(opcional) eliminar cualquier versión anterior de ruby

 rvm remove 1.8.7 

Entonces:

 CC=/usr/local/bin/gcc-4.2 rvm --verify-downloads 1 reinstall 1.8.7-p357 --without-tcl --without-tk 

o si ha configurado CC en su perfil

 rvm --verify-downloads 1 reinstall 1.8.7-p357 --without-tcl --without-tk 

Tenga en cuenta las banderas en la instalación rvm. Tuve problemas para verificar la sum de comprobación en el servidor ftp y algunos problemas con tck y otras cosas. Puede omitir esas banderas.

Además: es posible que deba eliminar una versión anterior de su gemset:

 rvm gemset delete  

Entonces

 gem install bundler bundle install 

Espero que esto ayude.

Usando la versión macport y ruby-1.9.x. Instalé con éxito los Rails con ruby ​​gem.

Tengo el mismo problema solo para arch x86_64 , cuando comento línea en mi ~ / .rvmrc

 rvm_archflags="-arch x86_64" 

Abra una nueva terminal e intente instalar ruby-1.8.7 nuevamente

 rvm install 1.8.7 

Fue un exito.

Si está utilizando RVM en un flujo de trabajo de desarrollo, agregué una corrección en un archivo .rvmrc para OS X Lion.

https://gist.github.com/1112962

(nombre de archivo actualizado)

Esto no está relacionado con RVM, pero si lo que está buscando es un entorno de desarrollo local para Lion, puede probar RubyStack. Es un instalador todo en uno de código abierto para Apache, MySQL, Ruby, Rieles, etc. No requiere comstackción y es autocontenido, por lo que si no te gusta simplemente puedes eliminar el directorio de instalación y listo. Descargo de responsabilidad: soy uno de los desarrolladores de RubyStack 🙂

CC=/usr/bin/gcc-4.2 rvm install 1.8.7 no funcionó, utilicé CC=/usr/bin/gcc rvm install 1.8.7 y lo hice (comprobando con “which gcc “)

Incluso con todas las otras sugerencias en esta página, todavía estaba obteniendo segfaults y frustrado, así que dije “¡joder!” y use el sistema proporcionado por Ruby 1.8.7:

 rvm use system 

Debe usar sudo para instalar gems, pero aún así evitará dolores de cabeza.

Mi solución fue anular el enlace simbólico / usr / bin / gcc en el terminal. Así es como lo hice:

https://plus.google.com/101970693023462019144/posts/eYVLvMCqTmc

Esto no solo solucionó mi instalación de RVM, sino que también me aseguró de que funcionara la instalación de gems con extensiones nativas (como rmagick).