2010-08-12 17 views
27

Soy nuevo en Ruby y en Mac OSX, aunque tengo bastante experiencia con los comandos de Unix. Acabo de instalar Ruby 1.9 a través de un comando MacPorts (puerto de instalación ruby19). Luego tuve que hacer un hallazgo desde la raíz solo para descubrir a dónde fue, que resultó ser: /opt/local/var/macports/software/ruby19/1.9.1-p376_0/opt/local/bin/ruby1. 9.Ruby en Mac OSX a través de puertos Mac

La versión actual de Ruby (1.8.6) se ejecuta a través de/usr/bin/ruby, que es un enlace simbólico a /System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby donde Current es un enlace simbólico a un directorio llamado 1.8.

Me gustaría hacer que Ruby 1.9 sea mi predeterminado (junto con herramientas relacionadas como irb), y aunque puedo lograrlo, me gustaría saber si hay una forma convencional. ¿Debo copiar o vincular la ruta MacPorts a /System/Library/Frameworks/Ruby.framework/Versions/1.9 y luego indicar Current en 1.9? (También cambiaría el nombre o copiaría los ejecutables: ruby1.9 a ruby, irb1.9 a irb, etc.) ¿O debería simplemente eliminar el enlace/usr/bin/ruby ​​(y/usr/bin/irb, etc.) y crear nuevos que apuntan a la versión MacPorts?

+1

Usted debería * no * eliminar (o tocar, francamente) el Ruby (o Perl o Python) del sistema. Deje eso exactamente como está. El sistema espera que esté allí, y usted no tiene forma de saber de antemano cuántas (o qué) cosas dependen de ello. En este caso, 'rvm' es una herramienta excelente para administrar varios intérpretes de Ruby, pero siempre hay * siempre * una mejor respuesta que" eliminar el predeterminado ". – Telemachus

+0

Todas las sugerencias rvm son un buen ejemplo de Straw Men. Específicamente, quieres un rubí de sistema, un rubí para cualquier parte. Desea que/opt/local/bin/ruby ​​sea ruby1.9. Ahora, unix proporciona la variable $ PATH para esto,/usr/bin/$ {ruby binaries} no se buscará suponiendo que configure su ruta correctamente, que tiene parece. RVM es una gran herramienta, a menos que desee utilizar ruby ​​todos los días de forma predeterminada. – chiggsy

+1

puerto instalar ruby19 + nosuffix, btw;) – chiggsy

Respuesta

23

Mi consejo:

$ port uninstall ruby1.9 

A continuación, siga esto: https://rvm.io/rvm/install/

continuación:

$ rvm install 1.9.2 
$ rvm --default 1.9.2 

Puede ser que incluso rvm install macruby de juguete con cacao.

+0

+1 aquí, y checkout homebrew para otra gestión de paquetes http://github.com/mxcl/homebrew –

+0

¡Gracias! Rvm parece un compromiso, pero probablemente valga la pena. –

+1

rvm tiene un montón de opciones, pero para empezar, puede obtener solo con estos tres: 'rvm install' para obtener un nuevo ruby,' rvm use' para cambiar versiones, y de vez en cuando 'rvm update' para obtener las cosas nuevas Todo lo demás puede aprender en su tiempo libre, cuando lo necesite (por ejemplo, pruebas multiversión). – Amadan

4

Me gustaría altamente recomendar RVM. Toma un poco de lectura, pero una vez que lo tienes instalado puedes instalar un ruby ​​con rvm install 1.9 (o jruby, ree, 1.8, etc.), y cambiar entre ellos con rvm 1.9. Cada versión ruby ​​también tendrá su propio conjunto de rubygems completamente aislado.

26

Instalar la variante nosuffix lugar:

sudo port install ruby19 +nosuffix 

Su versión más reciente de rubí ahora debe prevalecer sobre el preinstalado.

+2

Gracias, eso es muy útil. No vi esa opción. –

2

El binario ruby1.9 debe instalarse en /opt/local/bin; si no es así, es posible que no haya activado el puerto.

La forma más fácil de hacer que Ruby 1.9 sea la raíz predeterminada es crear un alias para ruby a ruby1.9. Si estás usando Bash, que puede hacer que al poner esto en su archivo de configuración Bash:

alias ruby='/opt/local/bin/ruby1.9' 
+0

Gracias por señalar eso. Tengo /opt/local/bin/ruby1.9. Probablemente lo habilite con un enlace simbólico en lugar de un alias, pero de cualquier manera funcionaría. –

+0

Eso no es suficiente, probablemente. Debería enlazar, gema, rdoc y una serie de archivos que vienen con ruby1.9. La mejor solución para mantener su sistema limpio es usar RVM. El rubys System o incluso macports ruby ​​se puede usar para compilar, por ejemplo, vim con soporte de ruby. –

16

En la última versión de macports (2.1.3 o superior), puede utilizar el comando port select.

port select --list ruby 
sudo port select --set ruby ruby19 

Para las versiones anteriores de macports puede hacer un enlace simbólico a la versión ruby ​​numerada. Esta es la forma en que macports generalmente maneja el cambio entre diferentes versiones de paquetes.

cd /opt/local/bin 
sudo ln -s ruby1.9 ruby 
28

Usted puede fácil para usar el puerto comando de selección, bajo DarwinPorts 2.1.3

$sudo port select --set ruby ruby19 
+4

Esta es aparentemente la forma "adecuada" de MacPorts de hacerlo ahora en lugar de '+ nosuffix' – beporter

+0

Sí, también funciona con ruby20. – TCSGrad

2

desinstalación rubí versión 1.8:
sudo port desinstalación rubí
Instalar rubí versión 1.9:
sudo port instalar ruby19
Vuelva a abrir el terminal

+0

No estoy seguro de que sea necesario volver a abrir el terminal. –