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.
Recent comments
1 year 38 weeks ago
2 years 8 weeks ago
2 years 10 weeks ago
2 years 12 weeks ago
2 years 25 weeks ago
2 years 29 weeks ago
2 years 48 weeks ago
2 years 50 weeks ago
3 years 3 weeks ago