1

Ruby on Rails: Manejo de Gemsets con RVM

16952Puntos

hace 6 años

En la introducción a  introducción a Ruby on Rails habíamos hablado de Ruby Version Manager, sin mayor detalle, pero ahora vamos a ir un poco mas profundo con el fin de que conozcamos un poco de cómo usar esta poderosa herramienta. Desde que tenemos instalado RVM podemos, dentro de él, instalar cualquiera de las versiones conocidas de Ruby. Con el siguiente comando podemos listar todas las versiones de Ruby que podemos instalar dentro de RVM: [ruby]rvm list known[/ruby] rvm-list-known En esa lista encontramos además de las versiones principales de Ruby, otras versiones para usos mas específicos, todas se pueden instalar, mediante el comando: [ruby]rvm install 2.2.0[/ruby] Donde 2.2.0 corresponde al numero de versión de Ruby; también podemos especificar que patch queremos instalar, de la siguiente manera: [ruby]rvm install 2.0.0-p643[/ruby] install-ruby Donde -p643 es el código del patchlevel, y existen otras cosas más, que podemos hacer con este comando install, que llegaremos a necesitar cuando los proyectos que desarrollemos aumenten su complejidad, como es el caso de asignar una CPU específica para la ejecución de una versión de Ruby, entre otras opciones, todo se encuentra documentado https://rvm.io. Ahora es conveniente que estemos seguros de cual instalación de Ruby estamos usando, y para eso usamos el comando: [ruby]rvm list[/ruby] rvm-list con ese comando solo listamos las instalaciones de Ruby, pero también podemos listar los gemsets que tengamos, y revisar cual estamos usando, con el comando: [ruby]rvm list gemsets[/ruby] rvm-list-gemsets Un gemset es un grupo de gemas. Creamos nuestros gemsets con el siguiente comando: [ruby]rvm gemset create gemsetPrueba1[/ruby] Ahora si observamos la lista de nuestros gemsets una vez mas, observaremos nuestro gemset recién creado, pero vemos que no está seleccionado. rvm-list-gemsets2 Para seleccionar el gemset usaremos el siguiente comando: [ruby]rvm use [email protected][/ruby] También es valido usar: [ruby]rvm [email protected][/ruby] O por separado: [ruby]rvm use 2.2.0[/ruby] [ruby]rvm gemset use gemsetPrueba1[/ruby] Listamos nuevamente nuestro gemsets y ya veremos nuestro nuevo gemset seleccionado. rvm-list-gemsets-despues-de-use Ahora como podemos ver que de cada Ruby hay uno sin nombre gemset (default) y un gemset llamado @global, esto está allí facilitar el trabajo en nuestras vidas, el Ruby que aparece sin gemset, existe para que podamos usarlo sin gemas, generalmente para usos temporales, y el @global es el gemset que agrupa todas las gemas instaladas en todos los gemsets de ese Ruby. Ahora nuestro nuevo gemset estará vacío, listo para comenzar a instalar nuestras gemas, por ejemplo, Rails es una gema, la instalamos con el siguiente comando: [ruby]gem install rails[/ruby] Con esto instalaremos la versión, estable, mas reciente de Rails, pero también podemos instalar una versión específica de cada gema con el comando: [ruby]gem install rails -v 4.2.0[/ruby] Podemos ver la lista de las versiones de Rails en rubygems.org/gems/rails/versions. Podemos listar las gemas instaladas con el comando: [ruby]gem list[/ruby] De la misma manera podemos instalar cualquier gema, en cualquiera de sus versiones. TIP: para instalar las gemas mas rápido podemos usar la siguiente instrucción en la instalación, con esto evitaremos que se instale la documentación en ambos formatos: [ruby]gem install rails --no-rdoc --no-ri[/ruby] También podemos listar los gemsets de cada Ruby, por separado, con el siguiente comando: [ruby]rvm gemset list[/ruby] rvm-gemsets-list Si queremos eliminar nuestro gemset, usamos el siguiente comando: [ruby]rvm gemset delete @gemsetPrueba1[/ruby] Si queremos eliminar uno de nuestros Rubies, podemos usar dos comandos: 1. Desinstala la versión de Ruby especificada. [ruby]rvm uninstall 2.2.0[/ruby] 2. Desinstala la versión de Ruby especificada, incluyendo toda la documentación y configuraciones. [ruby]rvm remove 2.2.0[/ruby] Para finalizar, ya vimos cómo especificar cual Ruby y cual Gemset queremos usar, pero sería inconveniente tener que aplicar ese comando cada vez que vayamos a trabajar con cada uno de nuestros proyectos, para ello RVM tiene un mágico comando que crea un archivo .rvmrc dentro de la carpeta de nuestro proyecto, el cual activa el gemset de nuestro proyecto, cada vez que desde la consola entramos en la ruta especifica. [ruby]rvm [email protected] --rvmrc[/ruby] También podemos crear el gemset y en la misma instrucción crear el .rvmrc, con el siguiente comando: [ruby]rvm [email protected] --create --rvmrc[/ruby] Al volver a entrar a la carpeta de nuestro proyecto nos saltará una solicitud de confirmación a la que damos "y", y con eso ya queda listo nuestro .rvmrc para usarlo cada que ingresemos a dicha carpeta. confirmacion-uso-rvmrc

Otros comandos útiles:

Existe una manera de interactuar con el Ruby instalado en nuestro sistema, desde RVM, y es a través del comando: [ruby]rvm system[/ruby] Para mantener actualizado nuestro RVM usamos el comando: [ruby]rvm get stable[/ruby] Para instalar la versión de desarrollo usamos el comando: [ruby]rvm get head[/ruby] Para actualizar todas las gemas de nuestro gemset usamos el comando: [ruby]gem update[/ruby] Podemos instalar gemas directamente en uno de nuestros Rubies con el comando: [ruby]rvm 2.2.0 do gem install rails[/ruby] O en varios Rubies, separándolos con comas, con el comando: [ruby]rvm 2.1.2,2.2.0 do gem install rails[/ruby] O en un gemset específico con el comando: [ruby]rvm @global do gem install rails[/ruby]

Recomendaciones:

  • Estar muy atentos a la compatibilidad entre gemas y entre versiones de gemas y las versiones de Ruby.
  • Siempre estar seguros de en cual versión de Ruby estamos trabajando y con cual gemset
  • Los gemsets podemos crearlos como mejor nos convenga, por ejemplo, si trabajamos con Rails, podemos condicionar los gemsets a las versiones de Rails, pero si trabajas con otras gemas, lo conveniente puede ser que creemos un gemset por proyecto, podemos escoger lo que más se acomode a nuestro estilo de trabajo.
Existen otras opciones para manejar varias instalaciones de Ruby, todas validas, puedes probarlas, o si ya manejas alguna y puedes comentarnos tus experiencias.

Clase Bonus gratis en Platzi:

Hoy 22 de mayo estaremos impartiendo una clase gratuita en la comunidad Platzi explicando en detalle como manejar gemsets con RVM. ¡Regístrate gratis en Platzi!.
M. Victoria
M. Victoria
Vitoya

16952Puntos

hace 6 años

Todas sus entradas
Escribe tu comentario
+ 2