Problema al actualizar Ruby en Mac con Xcode 4.3.1

Estoy usando RVM para instalarlo y me da este error:

The provided compiler '/usr/bin/gcc' is LLVM based, it is not yet fully supported by ruby and gems, please read `rvm requirements`. 

Estoy en Lion 10.7.3 y tengo Xcode 4.3.1.

La respuesta corta es que puede tomar la twig principal de RVM (no estable) para comstackrla con LLVM (no gcc, escribí mal al principio). Tiene parches apropiados para hacer que 1.9.3-p125 funcione (al menos mejor) con Xcode 4.3.1 por defecto. Proporcioné el parche. Si ya instaló RVM, rvm get head instalará la twig principal. Con las herramientas de línea de comandos instaladas con Xcode 4.3.1, puede instalar Ruby 1.9.3-p125 con éxito.

Fondo

Sucede debido a un simple problema de configuración de Ruby 1.9.3-p125, no permite que los módulos de enlace dynamic funcionen. Esto sucede si estás usando Xcode 4.3.x ( Ruby Issue # 6080 ).

Este problema se ha corregido en el conjunto de cambios r34840 .

RVM tiene un sistema de parches que proporciona por versión. Este parche está incluido en el RVM (twig principal por ahora) y ahora es el predeterminado para los pasos de configuración del p125.

Herramienta de línea de comandos de Xcode 4.3.x.

Primero, con Xcode 4.3.x, necesita instalar la herramienta de línea de comando DESPUÉS de instalar Xcode 4.3.x, siguiendo las instrucciones: 1) Ejecutar Xcode, 2) Abra “Preferencias” desde el elemento “Xcode” en la barra de menú. 3) Seleccione la pestaña “Descargas” (icono). 4) Haga clic en el botón “Instalar” para “Herramientas de línea de comando” (instrucciones tomadas del sitio de mi amigo aquí )

Si Xcode 4.3.1 está instalado correctamente, entonces cc --version debería emitir:

 % cc --version Apple clang version 3.1 (tags/Apple/clang-318.0.54) (based on LLVM 3.1svn) Target: x86_64-apple-darwin11.3.0 Thread model: posix 

autoconf y automake

Necesita autoconf y automake, ya que Xcode 4.3.x no los tiene. Instalarlos ya sea brew o MacPorts. Con MacPorts :

 sudo port install autoconf automake 

Paso de instalación recomendado con RVM

Luego, para instalar una twig específica de RVM, puede:

 REPO=wayneeseguin BRANCH=master # stable for the stable branch curl -s https://raw.github.com/${REPO}/rvm/${BRANCH}/binscripts/rvm-installer > /tmp/rvm-installer.sh bash /tmp/rvm-installer.sh --branch ${REPO}/${BRANCH} 

O si RVM ya está instalado:

 rvm get head # master branch, for stable branch "rvm get stable" 

Después de eso, instale openssl, iconv y readline usando el comando rvm pkg para obtener el mejor resultado. Lo sigo últimamente. Parte de esto podría necesitar ser incluido a RVM ..

 rvm pkg install openssl rvm pkg install readline # if you prefer GNU readline 

Luego, finalmente, instale el Ruby.

 rvm install 1.9.3-p125 --patch xcode-debugopt-fix-r34840.diff --with-readline-dir=$rvm_path/usr --with-openssl-dir=$rvm_path/usr --with-tcl-lib=/usr --with-tk-lib=/usr 

La ayuda de rvm pkg recomienda un parámetro diferente, la ayuda está rota. Entonces use arriba por ahora. Necesita los parámetros tcl / tk si los tiene a través de MacPorts (como yo)

Por cierto, es posible instalar el viejo Xcode luego ejecutar rvm con export CC="gcc-4.2" rvm install 1.9.3-p125 , pero personalmente creo que el clang (LLVM) es el camino a seguir para el futuro, si es posible.

Espero que esto ayude.

Nota adicional sobre 2012/3/31

iconv no necesita instalarse, también se han agregado los requisitos de autoconf / automake para aclaraciones.

Nota adicional sobre 2012/4/13

El último estable no incluye el parche requiere enlace dynamic para funcionar por defecto. necesita agregar --patch xcode-debugopt-fix-r34840.diff cuando --patch xcode-debugopt-fix-r34840.diff 1.9.3-p125.

A partir de RVM 1.10.2, todo lo que necesita es instalar el paquete homebrew apple-gcc42 y todo será “Just Work (TM)”:

brew tap homebrew/dupes ; brew install apple-gcc42 ; rvm install ruby-1.9.2

Ciao!

[Actualizado según los comentarios a continuación]

Solo necesita instalar gcc-4.2 en / usr / bin.

Aquí está la descarga https://github.com/downloads/kennethreitz/osx-gcc-installer/GCC-10.7-v2.pkg .

Y luego CC = / usr / bin / gcc-4.2 rvm install 1.8.7 –force

Creo que la gente está confundida de que todo el mundo escribe

 rvm get head rvm get stable 

en su lugar, SOLO deberías escribir

 rvm get head 

de lo contrario, no funcionará (ya que stable aún no tiene los parches correspondientes).

También tuve un problema con ruby-1.9.3-p125, esto es lo que hice, espero que esto pueda ayudar a alguien más adelante.

rvm instalar ruby-1.9.3-p194

y comprobado que el nuevo ruby ​​instalado con

lista rvm

 ruby-1.9.2-p318 [ x86_64 ] ruby-1.9.3-p125 [ x86_64 ] I want to remove this one ruby-1.9.3-p194 [ x86_64 ] I want to use this one 

Luego eliminé la versión antigua de ruby

rvm eliminar ruby-1.9.3-p125

y establece el nuevo Ruby Ruby-1.9.3-p194 para usar e instalar gems

rvm use ruby-1.9.3-p194

paquete de instalación

He instalado y probado con lo siguiente similar a las sugerencias anteriores. Sin embargo, simplemente desinstalé todo e hice la instalación básica para todos estos. La única excepción fue que en vez de usar el cuadro de diálogo de preferencias de xcode para instalar las herramientas de línea de comandos (que me fallaron). Apple publicó un stand por separado que utilicé en el ítem 2.)

  1. Descargue e instale xCode 4.3.2
  2. Descargar e instalar herramientas de línea de comandos para Xcode a fines de marzo de 2012
  3. Establezca la ruta xcode $ xcode-select -switch / Application / xcode.app/Content/Developer
  4. Instale Homebrew y luego instale git, autoconf, automake, libyaml, libksba, wget a través de Brew.
  5. Instala RVM asegúrate de que esté configurado en tu caparazón
  6. rvm instalar ruby-1.9.3-p125

Hay artículos que recomiendan esto para ruby> = 1.9.3 y eso es todo lo que he probado y uso actualmente. Instalé y uso mysql2, sqlite y el sospechoso habitual (GEM). Todos comstackron y aprobaron algunas de mis pruebas básicas.

Espero que esto ayude.