¿Cómo “activo” una versión diferente de una gem en particular?

Quiero cambiar entre los carriles 2.3.10 como la gem “activa” para mi sistema operativo, de modo que pueda invocarlo en la línea de comando.

¿Es posible hacer esto? No estoy usando rvm. Tal vez es hora de comenzar.

Intenté gem install rails --version=2.3.10 , pero eso solo asegura que la versión de la gem está instalada, no la coloca en /usr/bin/rails .

(Ya uso bundler para mis aplicaciones, pero no he necesitado ningún control preciso sobre las gems en el nivel del sistema operativo hasta ahora)

Si su problema es ejecutar archivos binarios de una determinada versión, entonces:

 rails --version # => the latest version rails _2.3.10_ --version # => Rails 2.3.10 

Este patrón ( gem-binary _gem-version_ ) funciona para cualquier gem binaria.

Espero eso ayude.

Use RVM

RVM le permite administrar diferentes versiones de Ruby y gems. Puede instalar una versión de ruby ​​usando, por ejemplo

 rvm install 1.9.2 

Luego puede usarlo usando:

 rvm use 1.9.2 

Usa gems específicas por proyecto con gems.

Si quieres más espacios de nombres, puedes configurar geos; directorios que contendrán gems específicas para un proyecto específico.

 rvm gemset create myproject 

entonces puedes usarlos así:

 rvm use 1.9.2@myproject 

Automatización

Para automatizar el proceso de cambio de gems, archivos pop .ruby-version y .ruby-gemset en la raíz de su proyecto. Haga estallar la versión de Ruby y el nombre del gemset que desea usar dentro de ellos y RVM seleccionará el gemset correcto cuando ingrese en el directorio de su proyecto.

Instalando gems en tu gemset

Instale sus gems en su gemset de la manera habitual usando bundler si lo está usando:

 bundle install 

o simplemente usando el antiguo habitual:

 gem install mygem 

Las gems irán en el gemset correcto.

Alternativas RVM

También es posible que desee comprobar rbenv, que hace un trabajo similar.

Puedes usar RVM

Luego también puedes usar Bundler luego, que administra bien las dependencias de gems.

En tu Gemfile

 gem "rails", "2.3.10" 

y en tu aplicación

 require 'rubygems' require 'bundler/setup' 

y tu estas listo.

EDITAR: Acabo de ver su mención RVM en la publicación. Definitivamente es el camino a seguir.

Vas a querer instalar RVM : es un paquete increíble que te permitirá administrar diferentes Rubys y diferentes conjuntos de gems en la misma máquina. Puedes cambiar hacia adelante y hacia atrás con total facilidad.

Aquí está la guía de instalación: http://rvm.beginrescueend.com/rvm/install/

Una vez que tienes todo rvm list , puedes ver todos tus rubys instalados en la línea de comando con rvm list , y cambiar con rvm use ruby-head , por ejemplo. RVM mantiene las gems en cada Ruby por separado, lo que debería ayudar con su pregunta.