GNU/Linux >> Tutoriels Linux >  >> Linux

Qu'est-ce que RVM (Ruby enVironment Manager ou Ruby Version Manager) ?

Public cible :

Cet article est destiné à être utile à toute personne ayant besoin de déployer ou de gérer plusieurs installations Ruby sur une seule machine. Un lecteur doit avoir une compréhension de base du fonctionnement de Ruby et des gemmes Ruby dans un système d'exploitation.

Présentation

Image :Ruby Logo par Yukihiro Matsumoto, Ruby Visual Identity Team / sous licence CC BY-SA 2.5

La gestion de plusieurs environnements Ruby peut être un défi. Ruby est un langage open-source, donc les nouvelles versions peuvent être fréquentes, et ces versions peuvent introduire des changements de fonctionnalités drastiques. Associez ce potentiel à l'utilisation de Gems tiers qui peuvent dépendre de fonctionnalités dans des versions Ruby spécifiques, et votre application peut rapidement avoir du mal à répondre à toutes les dépendances dont elle a besoin pour s'exécuter. RVM (alternativement développé sous Ruby enVironment Manager ou Ruby Version Manager) s'attaque à ce problème de front en fournissant un ensemble d'outils de ligne de commande qui vous permettent de contrôler activement non seulement la version de Ruby utilisée par votre application, mais également les ensembles et versions de Gem. il utilise. Ci-dessous, nous discuterons de ce qu'est RVM, en abordant chacun des avantages qu'il a à offrir.


.

Gérer plusieurs environnements Ruby

RVM vous permet d'installer plusieurs versions du langage de programmation Ruby sur une seule machine. Une installation native du langage de programmation Ruby installera les binaires du langage dans un bin commun répertoire sur le système d'exploitation ; ainsi, toute modification de ces fichiers binaires installés affectera toutes les applications Ruby hébergées sur la machine. Même des augmentations de version relativement mineures, comme de 2.1.4 à 2.2.1, peuvent introduire des changements dans le langage qui cassent le comportement du langage existant.
.
RVM vous permet d'isoler ces binaires de langage dans des fichiers binaires gérés séparément. environnements, qui peuvent être utilisés à volonté sur votre système. Il accomplit cette isolation en encapsulant chaque installation dans un ensemble distinct de répertoires et de dépendances et en fournissant des outils de ligne de commande faciles à utiliser pour basculer rapidement entre les versions. RVM gère l'échange de tous les chemins d'exécution pertinents, des variables d'environnement et des bibliothèques tierces installées, permettant aux développeurs de se concentrer sur le développement de leurs applications au lieu de gérer leurs dépendances.
.

Pourquoi la RVM est-elle importante ?

Pour une seule petite application, RVM peut sembler exagéré. Cependant, une fois qu'une base de code atteint un certain niveau de complexité, il peut être difficile de suivre exactement les dépendances sur lesquelles l'application s'appuie. De plus, à mesure qu'une application se développe et exploite divers Ruby Gems, ces bibliothèques tierces peuvent introduire d'autres dépendances, faisant d'un simple changement de version un événement complexe semé d'embûches. Par exemple, la sortie de la version 2.1.0 a introduit un changement radical dans les analyseurs REXML que de nombreux Gems utilisent pour fournir la fonctionnalité SOAP. Cette considération est également cruciale pour les serveurs Web hébergés par VPS, qui peuvent héberger plusieurs applications Ruby à la fois (comme un serveur de travaux différés basé sur Resque, un serveur Web basé sur Rails et une console d'administration basée sur Sinatra). Obtenir plusieurs applications différentes avec plusieurs ensembles différents de dépendances se comportant correctement peut être un travail à plein temps en soi. En encapsulant différentes versions du langage Ruby dans des environnements distincts, RVM permet au développeur de tester de nouvelles versions, de déployer des applications existantes sans se soucier des modifications radicales et de s'assurer que la gestion de l'infrastructure des applications prend le moins de temps possible.
.

Résoudre les conflits de dépendance

L'avantage le plus évident obtenu grâce à l'utilisation de RVM est la gestion des dépendances. En encapsulant les installations du langage de programmation Ruby dans des environnements séparés pilotés par ligne de commande, vous pouvez plus facilement contrôler les dépendances de version. RVM, associé à un cadre de gestion Gem comme Bundler, peut faire des conflits de dépendance basés sur la langue une chose du passé - il vous suffit de vérifier qu'il existe une version du Gem avec laquelle vous travaillez qui est compatible avec votre installation actuelle. De plus, l'utilisation de RVM vous permet d'être sûr que seuls les Gems dont vous avez besoin seront installés. Chaque environnement Ruby géré par RVM possède son propre ensemble de Gems, et en tant que tel, il n'y a pas de contamination croisée entre les applications susceptibles d'utiliser des Gems qui affectent l'environnement d'exécution Ruby lui-même.
.

Simplifier le déploiement

En plus d'atténuer les changements cassants et de résoudre les conflits de dépendance, RVM peut faciliter le processus de déploiement des applications Ruby. RVM propose des fonctionnalités telles que les "Named Gemsets", qui vous permettent de spécifier rapidement et facilement les dépendances de votre application Ruby. De plus, Ruby utilise un cache partagé des versions de gem, ce qui réduit l'espace disque global utilisé par votre déploiement Ruby. Enfin, RVM veille à ce que toutes les dépendances spécifiées soient entièrement contenues dans l'espace utilisateur, réduisant ainsi les risques de sécurité et supprimant la nécessité d'exécuter votre application en tant qu'utilisateur root.
.

Conclusion

L'article ci-dessus ne fait qu'effleurer la surface des fonctionnalités offertes par RVM. En utilisant RVM pour gérer l'environnement de votre application, vous pouvez atténuer les problèmes de déploiement, atténuer les problèmes de mise à niveau et créer un ensemble fiable de dépendances pour votre application Ruby. Associé à des outils tels que Bundler, RVM fait de l'installation, de l'exécution et de la gestion d'une application Ruby un processus simple et rationalisé.

Atlantique.Net

Nous proposons de nombreuses applications d'installation hébergées VPS en un clic qui offrent également un processus simple et rationalisé. Nous avons de nombreuses applications populaires telles que WordPress, l'hébergement cPanel et l'hébergement Docker.
.


Linux
  1. Quel est votre gestionnaire de packages Linux préféré ?

  2. Joyeux anniversaire GNOME :Quelle est votre version préférée ?

  3. Quel est votre gestionnaire de fenêtres Linux préféré ?

  4. Quelle version d'Ubuntu tient sur un CD-r ?

  5. Qu'est-ce que le gestionnaire LVE ? Pourquoi est-ce utile ?

Quelle version de Linux est-ce que j'utilise ?

Installation de Ruby on Rails sur Ubuntu 14.04 - 15.10

Comment installer Ruby Version Manager (RVM) sur Debian 11 Bullseye

Comment installer RVM-Ruby Version Manager sur Ubuntu 20.04 LTS

Comment installer Ruby on Rails sur Ubuntu 20.04 avec RVM

Bases de RVM – Ruby Version Manager