¿Cómo uso RVM y creo gems disponibles a nivel mundial?

Estoy ejecutando Mac OSX 10.6.4 y he instalado RVM. Hasta ahora, ha sido genial, realmente me encanta la forma en que me permite administrar múltiples versiones de Rails y Rubyes en la misma máquina sin dolores de cabeza.

Sin embargo, no quiero tener que instalar ciertas gems (como pasajeros) para cada configuración. ¿Hay alguna manera de compartir gems entre gems? Tengo un 1.8.7@rails2.3.8 y 1.9.2@rails3, ¿puedo instalar gems como pasajero, mysql y capistrano una vez y usar con todas las versiones?

Hay algo llamado gemset global, y se comparte entre todas sus gems de una determinada versión de ruby. Pero no puedes compartir gems entre ruby-versions.

Sin embargo, lo que puedes hacer es crear una lista de gems que se instalarán automáticamente al agregar una nueva versión de ruby. Eso se describe aquí . En resumen: edite un archivo llamado ~/.rvm/gemsets/global.gems para contener la lista de gems que quiere que estén allí para cada versión de ruby.

Espero eso ayude.

Con la última versión de RVM (1.17.0 y más reciente) simplemente escriba:

rvm @global do gem install passenger

o

rvm 1.9.3@global do gem install passenger si lo necesitas solo para una versión específica de ruby.

Puede crear y usar gems globales con los siguientes comandos:

 rvm gemset create global rvm gemset use global 

Después de crear y ejecutar el uso del gemset global, simplemente instale las gems como siempre:

 gem install mysql passenger 

agrega las gems que quieras para cada gemset en un nombre de gemset rvm “global”, es decir,

 rvm 1.9.2@global 

luego, proyecte las gems específicas rvm rvm 1.9.2@myProject ya tendrá gems “predeterminadas” de su lista global

Crea y usa una gem global como:

 rvm use @global --create 

e instala gems que quieras compartir entre gems:

 bundle install  

pero estas gems solo pueden compartirse entre gems de la misma versión de Ruby.

De acuerdo con la documentación de RVM, en realidad hay una serie de gems “globales” que se pueden definir a nivel de rvm, por intérprete, por versión de intérprete y, finalmente, en un nivel de parche específico por intérprete. E instaló cascada de gems de un nivel al siguiente.