Instalando la versión más reciente de Ruby en Snow Leopard

4

Descargué y compilé la última versión de ruby 1.9.2 que se instaló en /usr/local/bin/ruby , sin embargo, el sistema reconoce oficialmente /usr/bin/ruby que es solo 1.8.7 que se instaló en la máquina. ¿Cómo puedo colocar el nuevo rubí en su lugar?

En este caso, necesito reemplazar la versión ruby y poder usar la versión actualizada para el trabajo de la línea de comandos y el desarrollo de rieles.

    
pregunta Jason Yost 10.05.2011 - 03:21

5 respuestas

9

Debería usar RVM , el Administrador de versiones de Ruby. Permite múltiples instalaciones paralelas de Ruby sin afectar la instalación del sistema Ruby, lo que, como señaló otro comentarista, puede potencialmente ser problemático (o al menos, molesto de mantener).

Le permite instalar rápida y fácilmente el último nivel de parche de Ruby, versiones anteriores de Ruby o incluso implementaciones alternativas como JRuby, MacRuby o Rubinius.

Para instalar:

$ bash < <(curl -s https://rvm.beginrescueend.com/install/rvm)

Una vez que está instalado, establecer 1.9.2 como predeterminado es tan simple como escribir:

rvm default 1.9.2

Y si tienes ganas de volver a la versión 1.8.7 temporalmente:

rvm use 1.8.7
    
respondido por el michaelmichael 10.05.2011 - 16:04
2

¿Qué quieres decir con "poner el nuevo Ruby en su lugar"?

Si está intentando ejecutarlo desde la línea de comando usando solo el comando ruby , el sistema buscará cada una de las rutas especificadas en /etc/paths en orden hasta que encuentre una coincidencia. En Snow Leopard, el archivo /etc/paths predeterminado tiene este aspecto:

/usr/bin
/bin
/usr/sbin
/sbin
/usr/local/bin

Entonces, cuando ingresa ruby en la línea de comando, el sistema busca primero /usr/bin/ruby , lo encuentra y no revisa el resto de las rutas (por lo que nunca llega a /usr/local/bin/ruby ). Para confirmar esto, puede ingresar which ruby en la línea de comando, y el sistema imprimirá la ruta del ejecutable que usaría para ese comando.

Si desea ejecutar su versión más reciente de Ruby desde la línea de comandos, simplemente ingrese /usr/local/bin/ruby en lugar de ruby .

Si está usando otro programa que está usando Ruby indirectamente, probablemente haya una opción en algún lugar para especificar la ruta a ruby .

EDIT: Como último recurso , puede sobrescribir la versión del sistema incorporado de Ruby con su versión más nueva. Use los siguientes comandos e ingrese su contraseña de administrador cuando se le solicite:

cp /usr/bin/ruby ~/Desktop/ruby_OLD
sudo cp /usr/local/bin/ruby /usr/bin/ruby

Si algo se rompe, devuélvelo con este comando:

sudo mv ~/Desktop/ruby_OLD /usr/bin/ruby

Como han mencionado otros, sin embargo, usar una herramienta como RVM para administrar Ruby sería una mejor idea que actualizar la instalación integrada.

    
respondido por el Austin 10.05.2011 - 03:46
2

Si realmente desea reemplazar el /usr/bin/ruby existente (que es simplemente un enlace simbólico a /System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby ) simplemente sobrescriba el archivo existente con el que compiló teniendo cuidado de hacer coincidir los permisos de los archivos.

Las razones para no hacer esto son muchas, pero es así de simple, dada una interpretación literal de tu pregunta.

La mayoría de las personas cambian su ruta para incluir el rubí más nuevo antes del sistema, ya que es más sencillo y menos probable que rompa otras cosas que dependen de la versión instalada de ruby y dylib asociado, gemas, rdocs y similares que permanecen igual.

Uno de los beneficios de homebrew y fink y RVM y MacPorts es que ayudan a automatizar la puesta en escena en una ubicación alternativa y admiten la modificación de su ruta.

Puedes hacer lo mismo con el rubí que tienes en /usr/local/bin manipulando tu variable de ruta y usando which -a ruby para verificar tu trabajo después.

    
respondido por el bmike 10.05.2011 - 17:19
2

La manera de encontrar cualquier programa autoinstalado antes de que ome ofrezca Apple es agregar el directorio del nuevo programa (por ejemplo, / usr / local / bin) a la variable de entorno PATH.

Si está ejecutando ruby desde el shell edit ~ / .profile o si está desde una GUI ~ / .MacOSX / environment.plist

    
respondido por el Mark 10.05.2011 - 12:57
0

Es posible que desee echar un vistazo a Homebrew , que facilita la instalación de la última versión de Ruby - brew install ruby is todo lo que necesita, y muchos otros paquetes sin interferir con nada que ya esté en su sistema, en una ubicación que (casi con seguridad) ya esté en su $PATH .

    
respondido por el One Thing Well 10.05.2011 - 14:56

Lea otras preguntas en las etiquetas