Pourquoi devriez-vous utiliser RVM

Une fois que vous êtes accro au développement de Ruby, vous allez vouloir expérimenter différentes versions de Ruby. À première vue, vous pourriez penser que c'est un peu difficile. RVM en fait une brise absolue. Dans ce tutoriel, je vais vous aider à utiliser RVM..


0 - Qu'est-ce que RVM?

Sans RVM, il est assez difficile d’avoir plus d’une version de Ruby sur votre ordinateur.

RVM signifie Ruby enVrepassage Manager. Voici l'idée. En tant que développeur Ruby, vous pouvez être amené à utiliser plusieurs versions de Ruby. Par exemple, vous avez commencé avec Ruby 1.8.6, mais vous souhaitez maintenant expérimenter avec 1.9.2. Ou bien, vous travaillez normalement avec la branche 1.9, mais vous voulez contribuer à un projet open source qui est toujours sur la branche 1.8.

Sans RVM, il est assez difficile d’avoir plus d’une version de Ruby sur votre ordinateur. Ou, si vous voulez essayer l'un des interprètes alternatifs Ruby, comme Rubinius ou JRuby? Comment pouvez-vous en faire tourner une partie sans abandonner votre fidèle installation IRM? C'est là qu'intervient RVM. Il s'agit essentiellement d'un cadre qui gère plusieurs installations de Ruby pour vous et vous permet de basculer facilement entre elles..

Deux mises en garde s'appliquent aujourd'hui:

  1. Vous devriez être assez familier avec la ligne de commande.

  2. Vous devriez être sur un système Unix. Cela signifie que vous utilisez probablement soit Mac OS X, soit une version de Linux. Même si je souhaite que RVM soit disponible sous Windows, ce n’est pas le cas. Si vous utilisez Windows, vous pouvez essayer Pik; Je comprends que c'est similaire, mais je n'ai pas encore eu l'occasion de l'utiliser.


1 - Comment installer RVM?

L'installation de RVM est un peu délicate. Tout d'abord, vous devez avoir installé Git. Ensuite, vous téléchargez un script et l’exécutez pour effectuer l’installation. Le site RVM recommande de le faire de cette façon:

frapper < <(curl -s https://rvm.beginrescueend.com/install/rvm)

Même si vous êtes assez à l'aise avec la ligne de commande, vous ferez probablement une pause lorsque vous verrez ceci. Il est plus facile de le lire à l'envers: nous utilisons boucle télécharger le script vers lequel pointe l'URL; la -s commande permet boucle sachez que vous souhaitez télécharger le script en mode silencieux (sans aucune sortie). C'est le script qui installe RVM.

Ensuite, pour exécuter ce script automatiquement, nous utilisons le signe double inférieur à pour passer le script à la commande située à gauche de l'opérateur. Dans notre cas, c'est frapper. Vous connaissez peut-être bash en tant que shell ou le terminal que vous utilisez probablement actuellement. Cela exécute le script dans un shell bash (qui s'exécute dans le shell bash de votre terminal!).

La commande ci-dessus télécharge et exécute le script, qui installera RVM..

Mais nous n'avons pas encore fini. Pour vous assurer que RVM fonctionne correctement, vous devez ajouter l’extrait suivant à votre ~ / .bash_profile ou ~ / .bashrc fichier.

[[-s "$ HOME / .rvm / scripts / rvm"]] && source "$ HOME / .rvm / scripts / rvm" # Ceci charge RVM dans une session shell.

Comme vous le voyez dans le commentaire, "cela charge RVM dans une session shell". Spécifiquement, si vous êtes curieux, cela charge le rvm commande en tant que fonction shell (comme celles que vous pourriez ajouter à votre ~ / .bash_profile fichier), au lieu de binaire (un programme que vous exécutez dans le shell, comme ls ou rubis).

Mais rappelez-vous, RVM est une bibliothèque en pleine croissance, et il est possible que la méthode d'installation change. Pour connaître les méthodes les plus récentes d’installation de RVM, consultez la documentation..

Maintenant que RVM est installé, utilisons-le réellement!


2 - Comment utiliser le RVM?

Les deux grandes fonctionnalités offertes par RVM sont les rubis et les gemsets. Examinons chacune d’elles à tour de rôle, puis examinons d’autres personnalisations..

Rubis

Les rubis sont l’intention principale (bien que non exclusive) de la RVM; rappelez-vous ce que RVM représente? Ruby enVrepassage Manager. Alors, installons des rubis!

Si vous utilisez Ruby depuis un certain temps, vous saurez qu'il existe différentes implémentations de Ruby parmi lesquelles choisir. Vous pouvez voir ceux qui sont disponibles avec RVM en utilisant cette commande:

liste de RVM connue

À propos, jetez un coup d'oeil à cette syntaxe; la plupart des commandes RVM que vous utiliserez sont comme ceci: rvm, une catégorie et une commande pour cette catégorie. De manière prévisible, cela listera toutes les implémentations de Ruby (et leurs versions) que vous pouvez installer..

Alors choisissons une version et installons-la. Cependant, il y a quelque chose que nous devrions faire en premier. Il est possible que votre plate-forme nécessite certaines dépendances avant de pouvoir installer le rubis de votre choix. Incroyablement, RVM vous soutient également: lancez la commande notes rvm pour voir quelles dépendances vous devez installer. Il répertorie les différents rubis que vous pouvez installer et ce que vous devez installer en premier pour chacun d'eux..

J'utilise généralement exclusivement Ruby 1.9.2, alors installons-le. Pour installer un Ruby, utilisez la commande rvm installer, suivi de l'implémentation et de la version que vous voulez, comme indiqué avec liste de RVM connue.

rvm installer ruby-1.9.2-p180

Vous pouvez installer autant de versions de Ruby que vous le souhaitez en utilisant cette commande..

Cette commande prendra quelques minutes à exécuter, mais une fois que c'est fait, vous aurez la version de ruby ​​que vous avez sélectionnée installée sur votre ordinateur..

Vous pouvez installer autant de versions de Ruby que vous le souhaitez en utilisant cette commande. Mais maintenant que vous avez plusieurs versions installées, comment les utilisez-vous ou basculez-vous entre elles? De plus, qu'en est-il de l'implémentation de Ruby fournie avec votre ordinateur??

C'est assez simple. Pour utiliser un Ruby donné, utilisez cette commande:

utilisation rvm  # in abstract rvm use 1.9.2-p180

Si c'est tout ce que vous faites, vous devrez le saisir à chaque fois que vous ouvrez un terminal; sinon, vous utiliserez par défaut Ruby intégré. Pour éviter cela, ajoutez le drapeau --défaut. Cela vous donne également un raccourci pour revenir à votre Ruby par défaut à tout moment; si vous êtes passé à un autre Ruby, tapez simplement rvm default pour revenir.

Pour vous assurer que vous utilisez la bonne version, tapez ruby -v; vous devriez voir la version de Ruby qui utilise juste sélectionné.

Si vous utilisez plusieurs rubis différents, vous voudrez garder une trace de ce que vous avez; c'est pourquoi vous avez le liste de rvm commander. Voici mon inventaire actuel:

 ruby-1.8.7-p302 [x86_64] ruby-1.8.7-p334 [x86_64] ruby-1.9.2-p0 [x86_64] ruby-1.9.2-p180 [x86_64]

Comme vous pouvez le deviner, le => à côté du dernier signifie que c'est celui que j'utilise actuellement.

Si vous souhaitez supprimer un Ruby, c'est tout aussi simple. Utilisation supprimer supprimer pour se débarrasser de tout ce qui concerne ce Ruby. Si vous pensez que vous voudrez peut-être réinstaller ce Ruby dans le futur, utilisez simplement rvm désinstaller; cela laisse le code source et d'autres morceaux en place.

Gemsets

Alors que plusieurs rubis sont cool, les gemsets, du moins pour moi, sont où il en est. Fondamentalement, un gemset est un ensemble de gemmes que vous utilisez exclusivement (ou presque exclusivement). C'est formidable dans deux cas:

  1. Vous voulez utiliser différentes versions d'une gemme donnée, probablement avec différentes versions de Ruby.
  2. Vous voulez? Bac à sable? vos pierres précieuses, de sorte que seules certaines sont disponibles à un moment donné.

Voyons comment cela fonctionne.

rvm gemset créer 

Bien sûr, vous êtes libre de nommer votre gemset comme vous le souhaitez. Pour voir tous vos joyaux, utilisez liste de jeux de rôle. Si vous faites cela maintenant, vous verrez deux jeux de pierres précieuses (en supposant que vous veniez d'exécuter la commande ci-dessus). On sera (ou ce que vous avez appelé) et global. le global Gemset est un spécial; comme vous pouvez probablement le deviner, les joyaux de la global gemset sont disponibles quel que soit le gemset que vous utilisez.

Vous pouvez voir l'avantage à ceci: il y a des joyaux que vous voulez toujours, peu importe ce que vous faites. Vraiment, il y a un autre gemset, le gemset par défaut, qui n'est pas répertorié et qui n'a pas de nom. Si vous n'utilisez pas de gemset spécifique, vous avez les gems disponibles dans le gemset par défaut (et, bien sûr, le gemset global).

Vous pouvez voir votre ensemble de pierres précieuses en utilisant la commande liste de jeux de rôle; comme avant, => marque le gemset que vous utilisez actuellement. Si aucun jeu de pierres n'est marqué, vous utilisez le jeu de pierres par défaut.

Rien de plus simple que de changer de gemsets:

utilisation rvm gemset 

Une fois que vous utilisez un gemset donné, vous pouvez installer des gems avec gem installer nom-gem. Il y a une note importante ici. Ne pas utiliser sudo lors de l'installation cela ignore complètement que RVM exécute le spectacle ici et l'installe sur l'ensemble du système, en dehors de l'environnement RVM. Alors, fais juste gem installer nom-gem.

Comme indiqué précédemment, les jeux de pierres généraux et par défaut sont créés lorsque vous installez un nouveau Ruby. Si vous souhaitez installer certains gems par défaut lorsque vous installez un nouveau Ruby, ajoutez-les au fichier gems approprié. Dans ~ / .rvm / gemsets /, vous trouverez deux fichiers: default.gems et global.gems. Il suffit de lister les gemmes par nom, un de chaque ligne. Ces gemmes seront installées dans le gemset approprié lorsque vous installerez un nouveau Ruby.

Ces fichiers de gemmes sont également un excellent moyen de stocker une liste de gemmes. Vous pouvez exporter un gemset avec exportation de gemset rvm; cela sauvera une liste des gemmes dans le gemset actuel en tant que default.gems quel que soit le dossier dans lequel vous vous trouvez. Si vous souhaitez attribuer un nom spécifique à ce fichier, ajoutez-le simplement à la fin de cette commande. Ensuite, vous pouvez importer cette liste de gemmes dans un Ruby différent ou même sur un autre ordinateur (pensez à le vérifier dans le contrôle de source) avec rvm gemset import gem-list-nom-fichier.

Une dernière chose à propos des joyaux: vous pouvez les utiliser dans votre utilisation rvm commandes. Faire ceci:

 utilisation rvm @

.Fichiers rmvrc

.Les fichiers rvmrc sont vraiment cool. Considérez-les comme le panneau de configuration de RVM. Vous pouvez avoir un fichier .rvmrc à trois endroits différents: / etc / rvmrc définit les options pour l'ensemble du système; ~ / .rvmrc définit les options pour l'utilisateur actuel; une .rvmrc fichier dans un répertoire spécifique personnalise les choses pour ce projet.

Le global et l'utilisateur .rvmrc Les fichiers sont principalement des options de compilation pour l'installation de nouveaux Rubies. Cependant, le projet spécifique .rvmrc les fichiers sont les plus amusants.

Voici comment procéder: lorsque vous démarrez un nouveau projet, vous devez créer un .rvmrc fichier dans ce répertoire. Disons que vous avez une application rails qui nécessite Ruby 1.8.6 pour fonctionner; Vous avez Ruby 1.9.2 par défaut et vous ne voulez pas vous rappeler de changer de Rubis lorsque vous travaillez sur ce projet. Alors, tapez cette commande:

 rvm --rvmrc --create 1.8.6-p334

Cela va créer un très commenté .rmvrc fichier qui modifiera votre environnement Ruby de manière transparente lorsque vous basculerez dans ce répertoire. Assurez-vous de lire les commentaires qui y figurent pour voir ce qui est fait exactement pour changer d’environnement et ce que vous pouvez faire avec. .rmvrc des dossiers.

Cela va encore mieux avec les pierres précieuses. J'utilise Ruby 1.9.2 pour tous mes projets, mais j'aime bien avoir un gemset différent pour chaque projet. Donc, si j'ai un projet qui s'appelle superproj, Je peux le faire:

 rvm --rvmrc --create 1.9.2@superproj

Ajoutez simplement un arobase après le nom Ruby et suivez-le avec le nom de votre gemset. Comme prévu, cela chargera de manière transparente les bonnes pierres précieuses pour ce projet. Si ce gemset n'a pas encore été créé, RVM le fera pour vous aussi.

Personnalisation rapide

Il est possible que vous souhaitiez connaître le rubis et le gemset que vous utilisez actuellement. Il y a deux façons de le faire: premièrement, vous pouvez simplement utiliser la commande info rvm. Cela vous indiquera quels rubis et pierres précieuses vous utilisez (parmi beaucoup d'autres choses).

Si vous voulez quelque chose de plus permanent, vous pouvez mettre le nom directement dans votre invite. Pour ce faire, ajoutez une ligne à votre ~ / .bash_profile. L’exemple de la documentation RVM est le suivant:

 PS1 = "\ $ (~ / .rvm / bin / rvm-prompt) $ PS1"

Ce que cela fait est d'exécuter le script ~ / .rvm / bin / rvm-prompt et mettez la sortie dans votre invite (elle ajoute alors quelle que soit votre invite à la fin). Cela mettra le nom de ruby ​​et le nom de gemset au début de votre invite. Mieux encore, si vous connaissez la personnalisation de votre invite, consultez la documentation pour savoir comment personnaliser davantage cette sortie..


Conclusion: amusez-vous avec!

J'espère avoir suffisamment démontré qu'il n'y avait vraiment aucune raison de ne pas utiliser RVM si vous êtes sur une boîte Unix. Personnellement, je n'ai pas encore jugé nécessaire d'utiliser plus d'un interpréteur / version de Ruby, mais je trouve les gemsets et les projets spécifiques. .rvmrc les fichiers sont incroyablement pratiques.

Mais il y a plus à apprendre sur le RVM que je n'en ai montré ici. Pour plus d'éducation, assurez-vous de consulter l'excellente documentation. Et laissez-moi savoir dans les commentaires si vous avez des questions.