Instalar Ruby 1.9 junto a Ruby 1.8 en Ubuntu 9.04 Jaunty Jackalope
// Julio 10th, 2009 // linux, tutoriales
Después de haber escuchado por un buen rato acerca de las ventajas y novedades de Ruby 1.9, creo que ha llegado la hora de probarlo.
Pero, ya tengo instalado Ruby 1.8 ¿recuerdan?
No se preocupen, instalar las dos versiones en el mismo sistema no podría ser más fácil.
Cómo instalar Ruby, RubyGems y Rails en Ubuntu 7.10 Gutsy Gibbon
Instalación
Vamos a instalar desde el código fuente, ya que la versión que está en los repositorios de Ubuntu no incluye el ejecutable para instalar las gemas, e instalar el paquete gem1.9 puede traernos algunos problemas.
Comienza por instalar las dependencias necesarias para compilar Ruby 1.9 (y Ruby 1.8 en caso de que más adelante quieras instalar Ruby 1.8 desde código fuente):
1 | sudo apt-get build-dep ruby1.8 ruby1.9 |
Descarga el código fuente de la última versión de Ruby 1.9
(al momento de escribir este artículo era la Ruby 1.9.1-p0).
Descomprímelo en alguna carpeta de tu elección, abre una terminal, ve al directorio donde se encuentran los archivos que descomprimiste y teclea lo siguiente:
1 | ./configure --program-suffix=19 |
Para compilarlo e instalarlo teclea la siguiente línea:
1 | make && sudo make install |
Listo, ya tienes Ruby 1.9 instalado en tu sistema… pero como ruby19. Seguramente querras acceder a él usando algo más sencillo, como ruby. Lo que puedes hacer aquí es crear unos enlaces simbólicos (symlinks), por ejemplo:
1 2 | sudo ln -fs /usr/local/bin/ruby19 /usr/local/bin/ruby ... |
Pero hay una forma más fácil.
Cambios de versión en chinga
Simplemente instala un par de alias en tu ~/.profile ~/.bashrc. Yo uso estos:
1 2 | alias ruby-switch-18='sudo ln -fs /usr/bin/ruby1.8 /usr/bin/ruby && sudo ln -fs /usr/bin/irb1.8 /usr/bin/irb && sudo ln -fs /usr/bin/gem1.8 /usr/bin/gem' alias ruby-switch-19='sudo ln -fs /usr/local/bin/ruby19 /usr/bin/ruby && sudo ln -fs /usr/local/bin/irb19 /usr/bin/irb && sudo ln -fs /usr/local/bin/gem19 /usr/bin/gem' |
Lo cual permite en la terminal, algo como:
1 2 | $ ruby-switch-18 && ruby --version ruby 1.8.7 (2008-08-11 patchlevel 72) [i486-linux] |
1 2 | $ ruby-switch-19 && ruby --version ruby 1.9.1p0 (2009-01-30 revision 21907) [i686-linux] |
source ~/.bashrc
Eso hará que se evalúe en ese momento el archivo, para que los alias estén disponibles ya.
Por cierto, una cosa más… para no tener problemas con los scripts que traen versiones ejecutables (rails, spec, etc.) instala esta gema en tus dos Rubys:
1 2 3 4 | ruby-switch-18 sudo gem install gem-sane-binary ruby-switch-19 sudo gem install gem-sane-binary |
Los scripts ejecutables mencionados arriba, incluyen un comentario en su primera línea llamado shebang. Luce así:
1 | #!/usr/local/bin/ruby19 |
Ese comentario indica con qué versión de Ruby debe ejecutarse el script. Y obviamente tendremos problemas porque a veces estaremos usando Ruby 1.8 y otras Ruby 1.9, y lo que queremos es que se use el Ruby que tengamos en ese momento activo.
La gema que acabamos de instalar haŕa que las nuevas gemas que instalemos usen el Ruby que tengamos linkeado en /usr/bin/ruby, y sus comentarios shebang, se verán ahora así:
1 | #!/usr/bin/ruby |
¡No más dolores de cabeza!
Flechas de teclado que funcionan en irb
irb (Interactive Ruby) es una consola donde puedes ingresar código Ruby de manera interactiva. Muy útil para probar pequeños fragmentos de código o hacer experimentos.
Después de instalar Ruby 1.9, me di cuenta de que las flechas del teclado, que normalmente uso para navegar las línea de código (hacia adelante o atrás), o repetir alguna línea anterior (hacia arriba o abajo), no funcionaban adecuadamente.
Esto sucede porque es necesario instalar el soporte de readline. Y vamos a hacer eso precisamente.
Instala las bibliotecas de sistema necesarias para poder compilar el soporte de readline en irb:
1 | sudo apt-get install libreadline5 libreadline5-dev |
Ahora necesitas compilar la interfaz de readline basada en Ruby, para tener disponible la biblioteca de readline en irb. En tu terminal ve al directorio donde descomprimiste el código fuente de Ruby 1.9 y haz lo siguiente:
1 2 3 4 | cd ruby-1.9.1-p0/ext/readline sudo ruby extconf.rb make sudo make install |
¡Eso es todo!
Prueba las flechas del teclado dentro de irb, deben funcionar sin problema ahora.
Recursos
Installing Ruby 1.8 and 1.9 Side by Side
Multiple Versions of Ruby on Ubuntu #3
How to make arrow keys working in irb in Linux/Ubuntu





[...] que instalé Ruby 1.9, me puse a hacer algunas pruebas. En una de esas, utilicé caracteres con acento en mis cadenas y [...]