2011-10-06 10 views
17

Tengo dos proyectos en mi computadora: - Una aplicación anterior de Rails 2.3 que necesita rubygems 1.6 y no se ejecutará en rubygems 1.8; - Una aplicación más nueva que necesita rubygems 1.8 y no se ejecutará en rubygems 1.6.¿Usa versiones múltiples de rubygems con rvm?

Cada proyecto tiene su propio gemset RVM, pero no puedo encontrar la manera de darles diferentes versiones de sí mismo rubygems: Actualización

  • joya --system [versión] resultados en la gema --version entrega la misma respuesta en ambos;
  • rvm gemset [versión] tiene el mismo resultado.

¿Cómo puedo ejecutar rubygems 1.6.2 en un proyecto y 1.8.11 en el otro?


Para aclarar, esto es lo que quiero hacer:

  • En el directorio A, tienen una .rvmrc con comandos que seleccionan gemset A y rubygems 1.6.2
  • En el directorio B , tiene un .rvmrc con comandos que seleccionan gemset B y rubygems más recientes
  • Tienen dos sesiones de terminal abiertas al mismo tiempo, una en el directorio A y otra en el directorio B
  • Tipo "--version joya" en el directorio A y consulte la sección "1.6.2"
  • Tipo "--version joya" en el directorio B y ver "1.8.11"

Respuesta

17

La forma correcta es creado diferentes con nombre (-n) instala del rubí desea instalado y nombrarlos según la versión rubygem desea como

rvm --install use 1.9.2-nrg186 && rvm rubygems 1.8.6 && gem --list 
rvm --install use 1.9.2-nrg1810 && rvm rubygems 1.8.10 && gem --list 

la razón de esto es que sólo puede tener 1 versio n de rubygems activos en cualquier momento dado. Esto también se debe al hecho de que cada ruby ​​define una dependencia en una versión específica de rubygems que se conoce o con la que se espera que funcione la versión (independientemente de si puede funcionar con otra o no).

Esta es la forma esperada de manejar el requisito de rubygems múltiples y eliminar posibles problemas. Consulte https://gist.github.com/1273035 para detalles específicos que detallan esto.

9

RVM tiene una nueva característica para esto:

usa "rvm rubygems 1.6.2" para seleccionar esa versión de rubygems.

rvm rubygems 1.6.2 

https://rvm.io/rubies/rubygems/ (ver: "RubyGems CLI API" hacia la parte inferior de la página)

http://groups.google.com/group/rubyversionmanager/browse_thread/thread/e39fc7827d2d22e8

+0

Esto no responde la pregunta, es decir, cómo utilizar una versión diferente del ejecutable 'gem', no versiones diferentes de varias gemas. –

+0

acaba de darse cuenta de esto también, y cambió mi respuesta – Tilo

+1

Se ve bien. Probado y puede colocarlo en un archivo '.rvmrc' sin problemas. –

Cuestiones relacionadas