rvm

Múltiples versiones de Ruby con RVM

Hace unos meses, los desarrolladores de Arch Linux decidieron que la versión de Ruby por defecto para su distribución iba a ser la 1.9.1. Lo cierto es que en nuestros proyectos aún usamos la rama 1.8, así que el cambio no me venía del todo bien.

Para evitar la actualización, puede hacerse uso de la opción de configuración IgnorePkg de Pacman, el gestor de paquetes de Arch Linux. Así, con algo como esto en el fichero pacman.conf, debería bastar:

IgnorePkg = ruby rubygems

Como solución temporal no está mal, pero tampoco es que me vuelva loco. Afortunadamente, poco después tropecé con Ruby Version Manager (a.k.a. RVM).

Esta herramienta nos permitirá tener instaladas todas las versiones de Ruby que queramos, permitiendo que cambiemos entre ellas según sea necesario. A grosso modo, lo que hace es instalar todas las versiones en ~/.rvm, de forma que cuando queramos cambiar de versión, no tiene más que ajustar la variable PATH.

Por ejemplo, si queremos instalar la última versión 1.8.7 disponible:

$ rvm install ruby-1.8.7

Si ahora deseamos usar esa versión:

$ ruby -v
ruby 1.9.1p243 (2009-07-16 revision 24175) [i686-linux]
$ rvm use ruby-1.8.7
$ ruby -v
ruby 1.8.7 (2009-06-12 patchlevel 174) [i686-linux]

Si queremos que esa sea la opción por defecto, basta con teclear:

$ rvm use ruby-1.8.7 --default

Por supuesto, cada versión tiene su propio "entorno". Quiero decir, si tengo las versiones 1.8.6 y 1.8.7 e instalo una gema en la primera de ellas, estará disponible sólo para esa versión (no para la 1.8.7).

Algo que quizás les pueda resultar interesante, es que RVM no se limita a la instalación de versiones del MRI, ya que también permite instalar JRuby, Ruby Enterprise Edition, Rubinius y el repositorio de shyouhei (que no sabía yo de su existencia).

En definitiva, una solución simple a un problema que se me había planteado ya en alguna ocasión.

Syndicate content