Zielgruppe:
Dieser Artikel soll für alle nützlich sein, die mehrere Ruby-Installationen auf einem einzigen Computer bereitstellen oder verwalten müssen. Ein Leser sollte ein grundlegendes Verständnis dafür haben, wie Ruby und Ruby Gems innerhalb eines Betriebssystems funktionieren.
Einführung
Bild:Ruby Logo von Yukihiro Matsumoto, Ruby Visual Identity Team / lizenziert unter CC BY-SA 2.5
Die Verwaltung mehrerer Ruby-Umgebungen kann eine Herausforderung darstellen. Ruby ist eine Open-Source-Sprache, daher kann es häufig zu neuen Versionen kommen, und diese Versionen können drastische Funktionsänderungen einführen. Kombinieren Sie dieses Potenzial mit der Verwendung von Gems von Drittanbietern, die möglicherweise von der Funktionalität innerhalb bestimmter Ruby-Versionen abhängen, und Ihre Anwendung kann schnell Schwierigkeiten haben, alle Abhängigkeiten zu erfüllen, die sie nur zum Ausführen benötigt. RVM (alternativ als Ruby EnVironment Manager oder Ruby Version Manager erweitert) geht dieses Problem direkt an, indem es eine Reihe von Befehlszeilentools bereitstellt, mit denen Sie nicht nur die Version von Ruby, die Ihre Anwendung verwendet, sondern auch die Gem-Sets und -Versionen aktiv steuern können es verwendet. Im Folgenden besprechen wir, was RVM ist, und gehen auf die einzelnen Vorteile ein, die es zu bieten hat.
.
Mehrere Ruby-Umgebungen verwalten
RVM ermöglicht es Ihnen, mehrere Versionen der Programmiersprache Ruby auf einem einzigen Rechner zu installieren. Eine native Installation der Programmiersprache Ruby installiert die Binärdateien der Sprache in einem gemeinsamen bin
Verzeichnis auf dem Betriebssystem; Daher wirkt sich jede Änderung an diesen installierten Binärdateien auf alle Ruby-Anwendungen aus, die auf dem Computer gehostet werden. Sogar relativ geringfügige Versionserweiterungen – wie etwa von 2.1.4 auf 2.2.1 – können Änderungen an der Sprache einführen, die das bestehende Sprachverhalten beeinträchtigen.
.
RVM ermöglicht Ihnen, diese Sprachbinärdateien in separat verwaltete Dateien zu isolieren Umgebungen, die Sie nach Belieben auf Ihrem System verwenden können. Diese Isolation wird erreicht, indem jede Installation in einem separaten Satz von Verzeichnissen und Abhängigkeiten gekapselt wird und benutzerfreundliche Befehlszeilentools bereitgestellt werden, um schnell zwischen Versionen zu wechseln. RVM übernimmt den Austausch aller relevanten Ausführungspfade, Umgebungsvariablen und installierten Bibliotheken von Drittanbietern, sodass sich Entwickler auf die Entwicklung ihrer Anwendungen konzentrieren können, anstatt ihre Abhängigkeiten zu verwalten.
.
Warum ist RVM wichtig?
Für eine einzelne kleine Anwendung mag RVM übertrieben erscheinen. Sobald eine Codebasis jedoch ein bestimmtes Maß an Komplexität erreicht, kann es schwierig sein, genau zu verfolgen, auf welche Abhängigkeiten sich die Anwendung stützt. Wenn eine Anwendung wächst und verschiedene Ruby Gems nutzt, können diese Bibliotheken von Drittanbietern außerdem weitere Abhängigkeiten einführen, wodurch eine einfache Versionsänderung zu einem komplexen Ereignis voller Gefahren wird. Beispielsweise wurde mit der Veröffentlichung von Version 2.1.0 eine bahnbrechende Änderung in den REXML-Parsern eingeführt, die viele Gems verwenden, um SOAP-Funktionalität bereitzustellen. Diese Überlegung ist auch für VPS-gehostete Webserver von entscheidender Bedeutung, die mehrere Ruby-Anwendungen gleichzeitig hosten können (z. B. ein auf Resque basierender verzögerter Jobserver, ein auf Rails basierender Webserver und eine auf Sinatra basierende Verwaltungskonsole). Mehrere verschiedene Anwendungen mit mehreren unterschiedlichen Abhängigkeiten zu erhalten, die sich ordnungsgemäß verhalten, kann eine Vollzeitbeschäftigung für sich sein. Durch die Kapselung verschiedener Ruby-Sprachversionen in separaten Umgebungen ermöglicht RVM dem Entwickler, neue Versionen zu testen, vorhandene Anwendungen bereitzustellen, ohne sich Gedanken über Breaking Changes machen zu müssen, und sicherzustellen, dass die Verwaltung der Anwendungsinfrastruktur so wenig Zeit wie möglich in Anspruch nimmt.
.
Abhängigkeitskonflikte lösen
Der offensichtlichste Vorteil, der durch die Verwendung von RVM erzielt wird, ist das Abhängigkeitsmanagement. Indem Sie die Installationen der Programmiersprache Ruby in separate befehlszeilengesteuerte Umgebungen kapseln, können Sie Versionsabhängigkeiten leichter kontrollieren. RVM, gekoppelt mit einem Gem-Management-Framework wie Bundler, kann sprachbasierte Abhängigkeitskonflikte der Vergangenheit angehören – Sie müssen lediglich überprüfen, ob es eine Version von Gem gibt, mit der Sie arbeiten, die mit Ihrer aktuellen Installation kompatibel ist. Darüber hinaus können Sie durch die Verwendung von RVM sicher sein, dass nur die Gems installiert werden, die Sie benötigen. Jede von RVM verwaltete Ruby-Umgebung hat ihren eigenen Satz von Gems, und daher gibt es keine Kreuzkontamination zwischen Anwendungen, die Gems verwenden können, die die Ruby-Ausführungsumgebung selbst beeinflussen.
.
Vereinfachung der Bereitstellung
Neben der Vermeidung von Breaking Changes und der Lösung von Abhängigkeitskonflikten kann RVM den Bereitstellungsprozess für Ruby-Anwendungen vereinfachen. RVM bietet Funktionen wie „Named Gemsets“, mit denen Sie schnell und einfach die Abhängigkeiten für Ihre Ruby-Anwendung festlegen können. Darüber hinaus verwendet Ruby einen gemeinsam genutzten Cache von Gem-Versionen, wodurch der von Ihrer Ruby-Bereitstellung verwendete Gesamtspeicherplatz reduziert wird. Schließlich stellt RVM sicher, dass alle angegebenen Abhängigkeiten vollständig im Benutzerbereich enthalten sind, wodurch Sicherheitsrisiken reduziert werden und die Notwendigkeit entfällt, Ihre Anwendung als Root-Benutzer auszuführen.
.
Schlussfolgerung
Der obige Artikel kratzt nur an der Oberfläche der von RVM angebotenen Funktionalität. Indem Sie RVM zur Verwaltung Ihrer Anwendungsumgebung verwenden, können Sie Bedenken bei der Bereitstellung beseitigen, Upgrade-Probleme mindern und einen zuverlässigen Satz von Abhängigkeiten für Ihre Ruby-Anwendung erstellen. In Verbindung mit Tools wie Bundler macht RVM das Installieren, Ausführen und Verwalten einer Ruby-Anwendung zu einem einfachen und optimierten Prozess.
Atlantic.Net
Wir bieten viele Ein-Klick-VPS-gehostete Installationsanwendungen an, die auch einen einfachen und optimierten Prozess bieten. Wir haben viele beliebte Anwendungen wie WordPress, cPanel-Hosting und Docker-Hosting.
.