2011-08-11 22 views
6

Estoy empezando a trabajar en un proyecto escrito en Rails 2. Parece que requiere una versión anterior de Rake, que está en mi gemset global para Ruby 1.8.7. Me gustaría evitar desinstalar el rastrillo global 1.8.7 solo para esta aplicación.RVM: crea un gemset que no hereda de global?

¿De todos modos puedo crear un gemset que ignore el gemset global?

Editar: la solución más obvia que quiero evitar es desinstalar gemas del gemset global. En mi situación particular, comencé a trabajar en una aplicación heredada. Se rompe con gemas como rastrillo 0.9.3 y mis gemas de depuración (awesome_print, hirb, wirb, etc.). Si bien mi solución actual (en el comentario a continuación) es un truco, parece ser la menor cantidad de trabajo para lo que quiero. Esperaba que hubiera algún comando de excepción gemset que yo no conocía.

+0

Mi solución actual: instale el siguiente nivel de par más reciente. Actualmente esto es 1.8.7-p299. Mi principal es 1.8.7-p352. Esto funciona ya que los intérpretes p299 y p352 no comparten gemas globales. Sin embargo, se parece mucho a un truco, por lo que aún me gustaría ver una solución más limpia, si es posible. –

Respuesta

-2

Sí, puedes. Debe ejecutar rvm gemset create {gemset_name}. Eso creará un gemset vacío, y tendrás que instalar todas las gemas con sus versiones allí (solo joya instalar ..., sin sudo).

+0

Acabo de ejecutar 'rvm gemset create {test}' y la gema {test} aún hereda las gemas del gemset global. –

+0

no debería ... ejecutarlo sin los corchetes –

+0

Creo que estás equivocado. RVM crea un gemset @global para cada intérprete que instale, es decir, [email protected] Cualquier gemset instalado en este intérprete tendrá sus propias gemas * más * las gemas en el gemset global. Lo que me gustaría hacer es instalar un solo gemset que ignore una o más gemas del mundo. –

1

Debería poder ejecutar rvm gemset empty test en su gemset recién creado para eliminar todas las gemas (local y global), entonces un bundle install solo debería instalar las gemas de gemfile.

+1

Esto es útil, pero 'rvm gemset empty' no elimina las gemas globales a menos que cambie primero al gemset global. Esta es una opción menos espagueti que la que tengo actualmente, por lo que es interesante. Para N proyectos que requieren las mismas gemas/versiones del núcleo (es decir, rake, ruby-debug, etc.), tendría que volver a instalar las gemas para esos N proyectos para que no los tenga en 1. –

Cuestiones relacionadas