web-dev-qa-db-fra.com

Comment "activer" une version différente d'une gemme particulière?

Je veux basculer entre Rails 2.3.10 comme gemme "active" pour mon OS, afin de pouvoir l'invoquer sur la ligne de commande.

Est-il possible de faire cela? Je n'utilise pas rvm. Il est peut-être temps de commencer.

J'ai essayé gem install Rails --version=2.3.10, mais cela garantit simplement que la version de la gemme est installée, elle ne la met pas dans /usr/bin/Rails.

(J'utilise déjà bundler pour mes applications - mais je n'ai pas eu besoin de contrôle précis sur les gemmes au niveau du système d'exploitation jusqu'à présent)

79
John Bachir

Si votre problème est d'exécuter des binaires d'une certaine version, alors:

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

Ce modèle (gem-binary _gem-version_) fonctionne pour tout binaire gem.

J'espère que ça aide.

147
Daniel Vartanov

Utiliser RVM

RVM vous permet de gérer différentes versions de Ruby et Gems. Vous pouvez installer une version de Ruby en utilisant, par exemple

rvm install 1.9.2

Vous pouvez ensuite l'utiliser en utilisant:

rvm use 1.9.2

Utilisez des gemmes spécifiques par projet avec des gemmes.

Si vous voulez plus d'espace de noms, vous pouvez configurer des ensembles de gemmes; répertoires qui contiendront des gemmes spécifiques pour un projet spécifique.

rvm gemset create myproject

alors vous pouvez les utiliser comme ceci:

rvm use 1.9.2@myproject

Automatisation

Pour automatiser le processus de changement de gemmes, pop . Ruby-version et . Ruby-gemset fichiers dans la racine de votre projet. Pop la version de Ruby et le nom du gemset que vous souhaitez utiliser à l'intérieur et RVM sélectionnera le gemset correct lorsque vous cd dans votre répertoire de projet.

Installer des gemmes dans votre ensemble de gemmes

Installez vos gemmes dans votre gemmes de la manière habituelle en utilisant bundler si vous l'utilisez:

bundle install

ou en utilisant simplement l'ancien:

gem install mygem

Les gemmes iront dans le bon ensemble de gemmes.

Alternatives RVM

Vous pouvez également consulter rbenv, qui fait un travail similaire.

10
superluminary

Vous pouvez utiliser RVM

Ensuite, vous pouvez également utiliser Bundler par la suite, qui gère très bien les dépendances de gemmes.

Dans votre Gemfile

gem "Rails", "2.3.10"

et dans votre candidature

require 'rubygems'
require 'bundler/setup'

et tu as fini.

7
Chubas

EDIT: Je viens de voir votre mention RVM dans le post. Certainement la voie à suivre.

Vous allez vouloir installer RVM - c'est un paquet étonnant qui vous permettra de gérer différents Rubys et différents ensembles de gemmes sur la même machine. Vous pouvez basculer d'avant en arrière en toute simplicité.

Voici le guide d'installation: http://rvm.beginrescueend.com/rvm/install/

Une fois que tout est levé, vous pouvez voir tous vos rubis installés sur la ligne de commande avec avec rvm list, et basculez avec rvm use Ruby-head, par exemple. RVM conserve les gemmes sur chaque Ruby séparé, ce qui devrait aider à répondre à votre question.

3
Sam Ritchie