2010-10-31 20 views
27

Digamos que tengo instaladas dos versiones de una gema (algunas versiones 0.10.6 y 0.10.5) y quiero ejecutar la versión anterior desde la línea de comandos. ¿Tengo que desinstalar la versión más nueva? ¿Hay alguna manera de usar una bandera para especificar qué versión quiero usar? Algo así como ...¿Cómo puedo llamar a una versión anterior de una gema desde la línea de comandos?

somegem /path/to/dir --version 0.10.5 

he comprobado la documentación rubygems, y sólo se describe cómo utilizar una versión específica en caso de requerir una joya de un archivo, pero nada acerca de cómo hacerlo desde la línea de comandos.

+0

¿Por qué "cargar una gema" desde la línea de comandos? Seguramente no tiene sentido a menos que estés usando la gema dentro del código Ruby (y luego, sigues las instrucciones para requerirlo de un archivo ...) – Gareth

+0

No estoy intentando cargar, simplemente ejecuto los binarios de una gema. Seguramente no son lo mismo. Necesito ejecutar las versiones anteriores a veces, o me gustaría ejecutar una gema que he modificado, pero también ejecutar la gema original cuando sea necesario. Como ambos se llaman "Somegem", Ruby no puede notar la diferencia y utiliza el binario de la última versión. – picardo

Respuesta

48
somegem _0.10.5_ /path/to/dir 

Sin enlace a la documentación, porque aparentemente no hay ninguna.

+0

¿Consideras que es porque la gente de Rubygems es poco flexible con la documentación, o que esta funcionalidad es algo sin apoyo, o una mezcla de los dos? –

+3

Esto (en realidad, 'ruby -S somegem _1.4.3_', porque' somegem' predeterminado para ejecutar ruby1.9.1) funcionó para mí con rubygems 1.8.15. –

+0

Aparentemente, se realiza en el script de instalación, donde el comando que se está ejecutando se ajusta para agregar este comportamiento https://github.com/rubygems/rubygems/blob/abf89e04954b8a2ddfb6948d0860111990a6efa2/lib/rubygems/installer.rb#L652 pero también no pude encontrarlo documentado en cualquier lugar –

Cuestiones relacionadas