Pregunta ¿Cómo "activo" una versión diferente de una gema en particular?


Quiero cambiar entre los carriles 2.3.10 como la gema "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.

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

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


73
2017-12-07 03:29


origen


Respuestas:


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 gema binaria.

Espero eso ayude.


136
2017-12-07 04:44



Use RVM

RVM le permite administrar diferentes versiones de Ruby y gemas. 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 gemas específicas por proyecto con gemas.

Si quieres más espacios de nombres, puedes configurar geos; directorios que contendrán gemas 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 gemas, pop .ruby-versión y .ruby-gemset archivos en su raíz del 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 gemas en tu gemset

Instale sus gemas 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 gemas irán en el gemset correcto.

Alternativas RVM

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


10
2018-03-20 12:25



Puedes usar RVM

Entonces también puedes usar Bundler después, que gestiona bien las dependencias de gemas.

En tus Gemfile

gem "rails", "2.3.10"

y en tu aplicación

require 'rubygems'
require 'bundler/setup'

y tu estas listo.


6
2017-12-07 03:35



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 gemas 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 listo, puedes ver todos tus rubys instalados en la línea de comando con rvm listy cambiar con rvm use ruby-head, por ejemplo. RVM mantiene las gemas en cada rubí por separado, lo que debería ayudar con su pregunta.


3
2017-12-07 03:33