¿Por qué estamos instalando Ruby 1.9.2 / 1.9.3 gems en una carpeta 1.9.1?

Esto se debe a que el directorio de instalación de Gem utilizado por el comando gem , que se ve al usar gem env , se configura de la siguiente manera:

 /lib/ruby/gems/1.9.1 

Mi pregunta es por qué?

¿No debería llamarse la carpeta?

 /lib/ruby/gems/1.9.x 

o

 /lib/ruby/gems/1.9 

o de lo contrario no podría haber uno por versión de Ruby, como:

 c:/ruby191/lib/ruby/gems/1.9.1 c:/ruby192/lib/ruby/gems/1.9.2 c:/ruby193/lib/ruby/gems/1.9.3 

No es un problema crítico, lo sé, solo me estaba preguntando.

En Ruby 1.9.0, la interfaz C se cambió de la serie Ruby 1.8.

Las gems que comstackn a código nativo tuvieron que ser recomstackdas.

La interfaz se cambió nuevamente en Ruby 1.9.1 y se mantuvo igual en Ruby 1.9.2 y 3. Esto explica el 1.9.1 que está viendo en su camino.

La idea es que puedas instalar diferentes versiones de Ruby en tu sistema y que las gems se compartan dentro de grupos que tengan la misma C api. Así que Ruby 1.8.6 y 1.8.7 podrían compartir sus gems, y también Ruby 1.9.1, .2 y .3.

Sin embargo, no es necesariamente la mejor idea. En cualquier caso, la mayoría de las personas usa rvm para acceder a las diferentes versiones de Ruby y rvm guarda las gems separadas para cada versión, independientemente de la versión C api.

Creo que es porque estas versiones deberían ser compatibles, y si tuvieras directorios separados, tendrías que volver a instalar todas tus gems. De esta forma puede actualizar la versión de ruby ​​sin tener que volver a instalar todas las gems.