Los que no están familiarizados con el desarrollo de software pueden sorprenderse de la cantidad de las llamadas áreas grises que puede haber. Incluso si sabes que quieres escribir, por ejemplo, una aplicación Rails, tienes que tomar varias decisiones más específicas. ¿Qué base de datos deberías usar? ¿Qué versión de Ruby? ¿Qué gemas hay que instalar? ¿Entrará en conflicto con otras versiones de Ruby o conjuntos de gemas? RVM, el gestor de versiones de Ruby, puede encargarse de ello. RVM te permite instalar, gestionar y cambiar entre versiones de Ruby sobre la marcha para que puedas desarrollar y probar software en múltiples versiones de Ruby sin problemas. Esta guía te mostrará cómo instalar RVM en Ubuntu y utilizarlo para gestionar tu entorno Ruby.

Nota: Este no es un artículo de “Cómo codificar Ruby”, sólo trata del uso de RVM para gestionar tus instalaciones de Ruby.

Cómo funciona

La configuración más común de RVM es algo así – Un usuario instala RVM como una aplicación, ya sea en todo el sistema o en su casa. A través de RVM, las versiones de Ruby elegidas por el usuario se instalan automáticamente en su casa. Usando los comandos de RVM, el usuario especifica qué versión quiere tener activa en cualquier momento. Todas las llamadas hechas a Ruby durante ese tiempo se dirigen al ejecutable Ruby apropiado y se ejecutan normalmente. No hay virtualización ni complejos wrappers o chroots de los que preocuparse, actúa más o menos como una inteligente serie de enlaces simbólicos y variables de entorno que dirigen todas las llamadas a Ruby a la versión elegida.

Instalación

Primero necesitamos algunos prerrequisitos. Tu instalación estándar de Ubuntu debería contener mucho de lo que se necesita, pero algunos paquetes necesarios pueden faltar. Para construir RVM correctamente, instala los siguientes paquetes desde el Centro de Software de Ubuntu o desde la línea de comandos con:

sudoapt-get installgit build-essential bison openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-0 libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev

Esto prepara nuestro sistema para construir e instalar correctamente RVM y Ruby. No necesitaremos hacer la rutina habitual de configure/make en este caso, ya que RVM incluye un sencillo script de construcción que debería hacer el trabajo por ti. Una vez instaladas todas las dependencias anteriores, ejecuta lo siguiente desde la línea de comandos:

bash<<( curl http://rvm.beginrescueend.com/releases/rvm-install-head )

Esto obtendrá el código fuente y entregará un bonito mensaje del desarrollador de RVM.

rvm-installationscript

Añadir una versión de Ruby

En este punto tienes RVM pero no tienes una instalación de Ruby utilizable. Conseguir que RVM instale uno es tan simple como un simple comando del shell. Para el primer ejemplo, instalaremos la versión estable 1.8.7 desde el código fuente con un comando RVM:

rvm install 1.8.7

rvm-install187

RVM se encargará de todo el proceso, incluyendo la configuración, la compilación y la instalación de RubyGems.

rvm-install187-2

Después de la instalación

Una vez completado, hay un poco de configuración del entorno que tenemos que hacer. Para que RVM pueda interceptar correctamente las llamadas a Ruby, tenemos que añadir la siguiente línea al .bashrc o al .bash_profile

[[-s”$HOME/.rvm/scripts/rvm”]]&& . “$HOME/.rvm/scripts/rvm”

Reinicie su shell y debería surtir efecto. Para probarlo, simplemente introduzca

escriba rvm |head-1

que debería responder con “rvm es una función”. Si no es así, algo se ha roto en la línea.

Manejando las versiones de Ruby

Ahora que todo está configurado, ¡podemos realmente usar RVM! Asumiendo que has instalado la versión 1.8.7 como en el ejemplo anterior, puede ser seleccionada con

rvm use 1.8.7

RVM debería darte una respuesta confirmando tu elección y mostrándote la ubicación del ejecutable de Ruby. Esto puede ser verificado más tarde usando el comando estándar del sistema which.

rvm-switch

Las versiones adicionales pueden ser instaladas de la misma manera, y las gemas pueden ser añadidas y eliminadas de las versiones RVM exactamente como lo harían en una instalación normal de Ruby en el sistema.

Puedes elegir tu versión sobre la marcha para asegurarte de que tu aplicación funciona como está previsto sin tener que preocuparte por conflictos y desajustes de entorno. Que lo disfrutes.