web-dev-qa-db-fra.com

Comment utiliser RVM et créer des gemmes disponibles dans le monde entier?

J'utilise Mac OSX 10.6.4 et j'ai installé RVM. Cela a été génial jusqu'à présent, j'aime vraiment la façon dont il me permet de gérer plusieurs versions de Rails et Ruby sur la même machine sans maux de tête!)

Cependant, je ne veux pas avoir à installer certaines gemmes (telles que passager) pour chaque configuration. Existe-t-il un moyen de partager des gemmes entre des ensembles de gemmes? J'ai un [email protected] et 1.9.2@Rails3, puis-je avoir des gemmes telles que passager, mysql et capistrano installées une fois et utilisées avec toutes les versions?

59
GiH

Il y a quelque chose appelé le jeu de gemmes global, et il est partagé entre tous vos jeux de gemmes d'une certaine version Ruby. Mais vous ne pouvez pas partager de gemmes entre les versions Ruby.

Cependant, ce que vous pouvez faire est de créer une liste de gemmes qui seront installées automatiquement lors de l'ajout d'une nouvelle version Ruby. Cela est décrit ici . En bref: éditez un fichier appelé ~/.rvm/gemsets/global.gems pour contenir la liste des gemmes que vous voulez être là pour chaque version Ruby.

J'espère que cela aide.

64
nathanvda

Avec la dernière version RVM (1.17.0 et plus récente), tapez simplement:

rvm @global do gem install passenger

ou

rvm 1.9.3@global do gem install passenger si vous en avez besoin uniquement pour une version spécifique de Ruby.

57
yas375

Vous pouvez créer et utiliser des ensembles de gemmes globaux avec les commandes suivantes:

rvm gemset create global
rvm gemset use global

Après avoir créé et exécuté l'utilisation du jeu de gemmes global, installez simplement les gemmes comme d'habitude:

gem install mysql passenger
31
ennuikiller

ajoutez les gemmes que vous voulez pour chaque gemme dans un nom de gemme rvm "global" c'est-à-dire.

rvm 1.9.2@global

puis projetez des jeux de gemmes spécifiques rvm 1.9.2@myProject vous aurez déjà vos joyaux "par défaut" de votre liste globale

3
Justin Soliz

Selon la documentation de RVM, il existe en fait un certain nombre de jeux de gemmes "globaux" qui peuvent être définis au niveau de rvm, par interprète, par version d'interprète, et enfin à un niveau de patch spécifique par interprète. Et les gemmes installées montent en cascade d'un niveau à l'autre.

2
Jase