Blogs
Conjuntos independientes de gemas con RVM
Sin lugar a dudas, una de mis funcionalidades favoritas de RVM es la posibilidad de tener conjuntos independientes de gemas (gemsets). Lo explicaré con un ejemplo.
Ahora que Rails 3 está cerca, es normal que queramos ir haciendo algunos experimentos. Sin embargo, si instalamos estas gemas, podemos tener problemas con Rails 2.x (yo los he sufrido con la gema i18n, sin ir más lejos).
RVM nos permite crear un conjunto de gemas independiente de forma que podemos seleccionar cuál queremos utilizar en cada momento. Supongamos que tenemos nuestra instalación de RVM con las gemas de Rails 2.3.8. Si queremos instalar Rails 3, podemos hacer lo siguiente:
$ rvm gemset create rails3 $ rvm use ruby-1.8.7@rails3 $ gem install rails --prereleaseSi hacemos un gem list podremos comprobar que tenemos disponibles todas las gemas de Rails 3 (y ni rastro de las de Rails 2.3.8).
$ gem list abstract (1.0.0) actionmailer (3.0.0.beta4) actionpack (3.0.0.beta4) activemodel (3.0.0.beta4) activerecord (3.0.0.beta4) activeresource (3.0.0.beta4) activesupport (3.0.0.beta4) arel (0.4.0) ...Como se infiere de este ejemplo, cuando queremos referirnos a un gemset en particular, no tenemos más que añadir @nombre al final de la versión. Si no ponemos nada, utilizara el gemset por defecto.
RVM nos ofrece, además, un gemset global cuyas gemas se incluyen en todos los gemsets del intérprete en cuestión. Siguiendo con el ejemplo, podríamos instalar la gema de PostreSQL una sóla vez y que estuviera disponible para todos los gemsets.
$ rvm 1.8.7@global gem install postgres $ rvm use 1.8.7 $ gem list postgres *** LOCAL GEMS *** postgres (0.7.9.2008.01.28) $ gem use 1.8.7@rails3 $ gem list postgres *** LOCAL GEMS *** postgres (0.7.9.2008.01.28)En definitiva, creo que esta es una funcionalidad realmente interesante aunque he dejado bastantes cosas en el tintero. Lo mejor es que echen un vistazo a la documentación de RVM.
-->