HOWTO · Ruby
Die Ruby-Version auf dem Mac ändern
Wir zeigen, wie man die Ruby-Version auf dem Mac ändert.
Auf dieser Seite
Um Ruby-Versionen auf einem Mac zu wechseln, verwenden Sie einen Versionsmanager wie rbenv oder RVM. Wählen Sie eine lokale Version für ein einzelnes Projekt oder eine globale Version für Ihre Shell. Bundler kann prüfen, ob ein Projekt seine angegebene Ruby-Version verwendet, installiert Ruby jedoch nicht und wechselt auch nicht die Version. Die folgenden Schritte zeigen beide Manager. Wählen Sie einen davon und prüfen Sie, ob Ihre Shell die ausgewählte Ruby-Version tatsächlich verwendet.
Versionsmanager für Ruby auf dem Mac auswählen
Verwenden Sie rbenv, wenn Sie ein schlankes Tool möchten, das Ruby über den PATH Ihrer Shell auswählt und die .ruby-version-Datei eines Projekts auslesen kann. RVM eignet sich, wenn Sie einen Manager bevorzugen, der zusätzlich Ruby-Gemsets und eine umfassendere Umgebungsverwaltung bietet. Richten Sie nicht beide Tools so ein, dass sie dieselben Shell-Startdateien ändern: konkurrierende Änderungen am PATH erschweren die Fehlersuche bei der aktiven Version.
Die Ruby-Installationen auf macOS unterscheiden sich. Prüfen Sie deshalb mit ruby -v, welche Version verfügbar ist, bevor Sie etwas ändern. Gehen Sie weder davon aus, dass Ruby auf jedem Mac vorhanden ist, noch dass ein Paketmanager eine bestimmte „neueste“ Version bereitstellt. Ein Versionsmanager installiert die konkret angeforderte Version; der installierte Compiler und die Systembibliotheken können beeinflussen, welche älteren Versionen sich kompilieren lassen.
Ruby mit rbenv installieren und wechseln
Installieren Sie zuerst Homebrew, falls es noch nicht verfügbar ist. Installieren Sie anschließend rbenv mit brew install rbenv. Richten Sie es in aktuellen Homebrew-Konfigurationen mit rbenv init in Ihrer Shell ein. Folgen Sie den Anweisungen des Befehls für Ihre Shell und starten Sie das Terminal neu oder laden Sie die Startdatei erneut. Ältere rbenv-Anleitungen verwenden möglicherweise eine shellspezifische Initialisierungszeile. Verwenden Sie daher die Anleitung für die installierte Version.
Installieren Sie eine Ruby-Version mit rbenv install 3.2.2 (ersetzen Sie das Beispiel durch die Version, die Ihr Projekt benötigt). Falls der Befehl rbenv install nicht verfügbar ist, installieren Sie die Komponente ruby-build mit der für Ihre rbenv-Installation empfohlenen Methode und versuchen Sie es erneut.
Wählen Sie, für welchen Bereich die Version gelten soll:
- Führen Sie im Projektverzeichnis
rbenv local 3.2.2aus. Dadurch wird3.2.2in die.ruby-version-Datei dieses Verzeichnisses geschrieben. rbenv wählt die Version dann dort und in den Unterverzeichnissen aus. - Führen Sie
rbenv global 3.2.2aus, um diese Version als Standard außerhalb von Verzeichnissen mit einer lokalen Einstellung festzulegen.
Eine lokale Einstellung hat Vorrang vor der globalen. Prüfen Sie die ausgewählte Version mit rbenv version und bestätigen Sie dann mit ruby -v und which ruby, dass der erwartete Interpreter aufgelöst wird. Falls ruby weiterhin auf eine andere Version verweist, initialisieren Sie rbenv in der Shell, die Sie tatsächlich verwenden, und prüfen Sie, ob $(rbenv root)/shims im PATH vor anderen Ruby-Verzeichnissen steht.
Ruby mit RVM installieren und wechseln
RVM verwendet ein Installationsprogramm aus dem Internet. Lesen Sie vor dem Ausführen die Installationsanleitung des RVM-Projekts. Wenn Sie ein heruntergeladenes Skript direkt an eine Shell weiterleiten, wird Code aus dem Netzwerk ausgeführt. Installieren Sie RVM wie für Ihre Shell dokumentiert, und öffnen Sie anschließend ein neues Terminal oder laden Sie die Shell-Integration. Eine Sitzung kann eine vorhandene Installation mit source ~/.rvm/scripts/rvm laden.
Installieren Sie die von Ihrem Projekt benötigte Ruby-Version mit rvm install 3.2.2 und wählen Sie sie anschließend mit rvm use 3.2.2 aus. Mit rvm use 3.2.2 --default legen Sie diese Version als Standard für neue Shells fest. Im Projektverzeichnis wählt rvm use 3.2.2 die Version für die aktuelle Shell aus. Bei eingerichteter Shell-Integration unterstützt RVM außerdem Projektdateien.
Prüfen Sie das Ergebnis mit ruby -v und which ruby. Falls weiterhin die alte Version aktiv ist, kontrollieren Sie, ob RVM in der aktuellen Shell geladen wurde, und prüfen Sie, ob im PATH ein anderer Ruby-Manager oder das System-Ruby weiter vorne steht. RVM und rbenv sind eigenständige Tools; Befehle für das eine konfigurieren das andere nicht.
Mit Bundler eine Ruby-Version für ein Projekt voraussetzen
Ein Projekt kann die benötigte Ruby-Version in seiner Gemfile angeben:
ruby "3.2.2"
Verwenden Sie eine Version, die das Projekt unterstützt. Führen Sie dann bundle install aus, während diese Ruby-Version ausgewählt ist. Bundler vergleicht den aktiven Interpreter mit der Anforderung in der Gemfile und installiert die Gems des Projekts; Ruby selbst lädt Bundler nicht herunter und wechselt auch nicht die Version. Erfüllt die aktive Ruby-Version die Anforderung nicht, wählen Sie mit rbenv oder RVM eine kompatible Version aus oder installieren Sie sie, und führen Sie Bundler anschließend erneut aus.
Eine eingecheckte .ruby-version-Datei kann einem Versionsmanager helfen, automatisch die Ruby-Version des Projekts auszuwählen. Stimmen Sie die Datei mit der Anforderung in der Gemfile ab und stellen Sie sicher, dass die benötigte Version in jeder Entwicklungs- und Build-Umgebung installiert ist.
Aktive Ruby-Version prüfen und häufige Probleme beheben
Führen Sie diese Befehle im selben Terminal und Verzeichnis aus, in dem Sie Ihre Anwendung starten:
ruby -vgibt die Version des Interpreters aus, den die Shell ausführt.which rubyzeigt die ausführbare Datei, die imPATHzuerst gefunden wird.rbenv versionmeldet bei Verwendung von rbenv die ausgewählte Version und deren Herkunft.rvm currentmeldet bei Verwendung von RVM die aktive Version.
Dieses kurze Ruby-Beispiel gibt die Version des Interpreters aus, mit dem es ausgeführt wird. Der bereitgestellte Lauf zeigte Active Ruby: 3.1.2; die Beschriftung Active Ruby bleibt in der unverändert übernommenen Ausgabe Englisch.
puts "Active Ruby: #{RUBY_VERSION}"
Active Ruby: 3.1.2
Wenn ein Manager die gewünschte Version meldet, ruby -v aber eine andere, verwendet die Shell wahrscheinlich eine andere ausführbare Datei. Prüfen Sie, ob die Initialisierung des Managers in der Startdatei Ihrer aktiven Shell steht, öffnen Sie ein neues Terminal und kontrollieren Sie den PATH erneut. Sehen Sie auch im aktuellen Verzeichnis nach einer .ruby-version-Datei, die rbenvs globale Auswahl überschreiben kann. Meldet Bundler, dass die Ruby-Anforderung nicht erfüllt ist, vergleichen Sie die Anforderung in der Gemfile mit ruby -v. Eine Änderung an den Gems allein behebt keinen Versionskonflikt beim Ruby-Interpreter.
Häufig gestellte Fragen
Kann ich mehrere Ruby-Versionen installieren?
Ja. Sowohl rbenv als auch RVM können mehrere Ruby-Versionen installiert halten. Wählen Sie die passende Version global oder für ein Projekt aus, statt eine Version zu entfernen, die ein anderes Projekt verwenden könnte.
Wie verwende ich für ein einzelnes Projekt eine andere Ruby-Version?
Führen Sie mit rbenv im Projektverzeichnis rbenv local VERSION aus. Dadurch wird die Auswahl in .ruby-version gespeichert. Mit RVM wählen Sie die Version in der Projektshell über rvm use VERSION aus. Richten Sie die Projektdatei-Unterstützung von RVM ein, wenn die Auswahl beim Wechsel in das Verzeichnis automatisch erfolgen soll. Stellen Sie in beiden Fällen sicher, dass die Version installiert ist, und prüfen Sie sie mit ruby -v.
Muss ich die vorherige Ruby-Version deinstallieren?
Nein. Behalten Sie Versionen, die andere Projekte benötigen. Falls Sie später eine Version entfernen, verwenden Sie den Entfernungsbefehl des Managers, mit dem sie installiert wurde, und prüfen Sie vorher, ob ein Projekt davon abhängt.
Wechselt Bundler die aktive Ruby-Version?
Nein. Mit einer ruby-Angabe in der Gemfile kann Bundler prüfen, ob der aktive Interpreter die Projektanforderung erfüllt. Verwenden Sie einen Versionsmanager, um Ruby zu installieren und auszuwählen, und führen Sie anschließend bundle install aus.