web-dev-qa-db-fra.com

Comment installer les gemmes Ruby lors de l'utilisation de RVM?

J'ai configuré RVM et l'ai utilisé pour installer Ruby et quelques autres bibliothèques. Au fur et à mesure que je parcourais divers didacticiels et configurations d'autres technologies comme Rails, j'ai commencé à être confus quant à ce que je devrais faire via RVM et ce que je dois faire comme le suggèrent les tutoriels.

Un exemple est le tutoriel RubyGems ici: http://rubygems.org/pages/download

Dois-je télécharger le fichier tar dont ils parlent? Cela semble inutile, car c'est à cela que je pensais que RVM était destiné. Ai-je même besoin de RubyGems? À quoi ça sert vraiment?

De plus, comment puis-je obtenir des Rails? Existe-t-il une commande RVM précise pour télécharger et installer Rails?

38
Genadinik

Cela m'aide à penser à RVM comme une couche d'abstraction entre vous et l'écosystème Ruby.

Sans RVM: Ruby, gems et Ruby binaires liés (comme rake, spec, gem, etc.) sont tous installés directement dans les répertoires de votre système d'exploitation.

Avec RVM: Ruby les choses liées sont interceptées par rvm de sorte que Ruby, les gemmes et Ruby binares liés sont "installés" dans ~/.rvm dir dans un Agréable, propre et organisé. RVM se situe entre Ruby, les gemmes et les binaires associés et le système d'exploitation. Il fournit un moyen d'avoir plusieurs environnements Ruby (avec des gemmes et des binaires différents) sur le même machine.

Donc, que vous ayez installé ou non rvm, vous devriez pouvoir exécuter les commandes presque exactement (*) telles qu'elles apparaissent dans tous les didacticiels disponibles sur le Web. En d'autres termes, vous pouvez "oublier" que RVM est installé; l'écosystème Ruby devrait fonctionner comme s'il n'était pas installé.

Alors oui, tu vas devoir exécuter gem install Rails, etc.

J'espère que cela aide à dissiper la confusion.

(*) Il y a quelques petites différences. Par exemple: vous ne devez pas exécuter de commandes en tant que Sudo lorsque RVM est installé.

49
Upgradingdave

Dois-je télécharger le fichier tar dont ils parlent?

Non. Ruby 1.9+ inclut des gemmes. RVM le modernise pour 1.8+.

En général, soyez prudent avec toutes les instructions que vous trouverez sur Internet expliquant comment installer quoi que ce soit, sauf si vous avez suffisamment d'expérience pour comprendre complètement ce qu'ils veulent que vous fassiez. En particulier, chaque fois qu'ils veulent que vous installiez quelque chose en utilisant Sudo ou en tant que root.

Plus précisément, lorsque vous travaillez avec RVM, vous ne voulez PAS utiliser Sudo pour installer Ruby, ou tout autre bijo . RVM fonctionne en configurant un bac à sable pour votre développement et s'appuie sur l'environnement de votre compte, en modifiant votre chemin d'accès afin que toutes les demandes Ruby soient dirigées vers les gemmes Ruby ou gemmes gérés par RVM actuellement sélectionnés ou vers les commandes qu'ils installent. Sudo pousse votre environnement normal sur le côté, en substituant temporairement celui de root, installe tout ce que vous lui avez demandé de faire avec les autorisations de root, puis revient à votre environnement.

Lorsque vous allez exécuter la commande ou recherchez la gemme, comme vous, elle ne peut pas être trouvée par Ruby de RVM, car le fichier a été installé en dehors du bac à sable de RVM, ou, il ne peut pas être lu ou modifié, car il appartient à racine. Quelle que soit la cause réelle, le résultat final sera des pleurs et des grincements de dents.

RVM ne subvertit pas la fonctionnalité gem. gem est utilisé pour installer et gérer les gemmes Ruby, et RVM l'a modifié pour utiliser le bac à sable pour toutes ses machinations. Vous bénéficiez de fonctionnalités supplémentaires grâce à la prise en charge de RVM par les jeux de gemmes, mais gem fonctionne comme il l'a toujours fait, mais seul "grand frère", RVM, contrôle son monde.

11
the Tin Man

Pas besoin d'installer rubygems. RVM devrait déjà avoir installé rubygems. RVM est (à mon avis) utile pour gérer différentes installations de Ruby (disons 1.8.7 et 1.9.2) ou différents jeux de gemmes. Si vous n'avez qu'une seule version de Ruby et ne vous souciez pas des différents jeux de gemmes, RVM n'est pas vraiment un grand changement. Si vous voulez simplement installer Rails, utilisez simplement gem install Rails. Si vous disposez d'une application Rails 3 existante, installez d'abord le bundler gem install bundler puis bundle install pour obtenir Rails et autres dépendances de gemmes).

4
drewrobb