Cómo gestionar distintas versiones de Ruby y listas de gems
RVM es una herramienta de línea 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.
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
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 ...
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 listrvm gemset list