Ruby Version Manager (RVM)

Cómo gestionar distintas versiones de Ruby y listas de gems

RVM es una herramienta de linea de comandos (principalmente linux) que permite instalar y gestionar fácilmente múltiples versiones de Ruby al mismo tiempo y distintas listas de gems.

Para instalarlo antes debemos instalar la aplicación CURL si aun no la tenemos:

sudo apt-get install curl

Curl servirá para descargar la última versión de rvm con el siguiente comando:

curl -sSL https://get.rvm.io | bash -s stable

Luego ejecutamos:

source /home/myuser/.rvm/scripts/rvm

Para ver que funciona correctamente escribimos:

rvm use

Y deberíamos ver el texto: Now using system ruby.

  • Atención: Al abrir una nueva consola, es posible que al usar rvm use nos aparezca el siguiente texto:
RVM is not a function, selecting rubies with 'rvm use ...' will not work.
You need to change your terminal emulator preferences to allow login shell. Sometimes it is required to use \`/bin/bash --login\` as the command. Please visit https://rvm.io/integration/gnome-terminal/ for an example.

Para solucionarlo podemos editar el archivo .bashrc en nuestra carpeta home, /home/miusuario/.bashrc y añadir la instrucción al final del archivo:

source /home/myuser/.rvm/scripts/rvm

Instalando versiones de Ruby

Ahora que a hemos instalado RVM ya podemos proceder a instalar diferentes versiones de Ruby. Para ver las versiones disponibles de Ruby podemos ejecutar la instrucción:

rvm list known

Podemos instalar una versión concreta, pero si queremos instalar la última versión estable ejecutamos:

rvm install ruby-head

Esto tardará un poco porque descargará y compilara la versión seleccioanda y sus dependencias.

Una vez terminada la instalación de Ruby, podemos ejecutar:

rvm list

Y nos aparecerá la versión instalada. Ahora crearemos una lista de Gems:

rvm gemset create myGemsList

Con este comando veremos que se ha creado correctamente nuestra lista de gems

rvm gemset list

Si nos fijamos la lista que hemos creado no está seleccionada por defecto. Para ello podemos usar

rvm gemset use myGemsList

Ahora podemos instalar las gems que queramos con la instrucción gem install ...

Usar una versión de Ruby y un gemset por defecto al entrar a un directorio

Normalmente, como para cada proyecto usaremos una versión de ruby y una lista de gems concreta, nos interesará que al entrar al directorio automáticamente pasemos a usar esas configuraciones.

Para ello ejecutaremos el comando:

rvm --ruby-version use ruby-head@myGemsList

Se crearán dos archivos .ruby-gemset y .ruby-version con la información de las versiones a usar de modo que si cerramos la consola y volvemos a acceder al directorio, veremos que ya se están usando las versiones especificadas:

rvm list
rvm gemset list