Ruby unter macOS für die lokale Entwicklung installieren
27. September 2022
0 Min. LesezeitWenn Sie mit der Entwicklung in Ruby oder Ruby on Rails beginnen, sollten Sie Folgendes wissen:
Wie Sie Ruby korrekt auf dem Mac installieren.
Wie Sie eine lokale Entwicklungsumgebung einrichten, die nicht mit
brewoder einer bestehenden Ruby-2.7-Installation auf dem Mac in Konflikt gerät.
In diesem Tutorial erfahren Sie, wie Sie beides erledigen! Wenn Sie ein neues MacBook mit macOS und M1-Chip haben, keine Sorge: Dieses Tutorial funktioniert auch für die Ruby-Installation auf einem Mac mit M1.
Führen Sie niemals brew install ruby aus
In einigen Anleitungen und Blogartikeln wird empfohlen, Ruby mit brew install ruby zu installieren oder die vorhandenen Ruby-Versionen unter macOS mit dem Befehl update ruby mac zu aktualisieren. Ich empfehle dringend, das ganz zu vermeiden.
Der Reddit-Nutzer postmodern schrieb in einem Ruby-Thread, dass man die brew-Installation wahrscheinlich anweisen könne, Ruby ausdrücklich in einem anderen Verzeichnis zu installieren. Brew installiert standardmäßig unter /usr/local. Laut postmodern beeinträchtigt das die Ruby-Skripte des Apple-Systems nicht, da der Speicherort des Interpreters fest auf /usr/bin/ruby codiert ist. Außerdem weisen sie darauf hin, dass Apple plant, die vorinstallierten Versionen von Python, Ruby und Perl einzustellen.
Warum können Sie auf dem Mac nicht das System-Ruby verwenden?
Wenn Sie Befehle ausführen, die Ihre native Ruby-Version ändern, etwa brew install ruby oder brew uninstall ruby, riskieren Sie, Funktionen und Möglichkeiten von macOS zu beeinträchtigen (das gilt auch für Macs mit M1-Chip).
Wichtig ist außerdem, dass die vorinstallierte Ruby-Version unter macOS veraltet ist. Auf einem neuen M1-Laptop aus dem Jahr 2022 ist es ruby 2.6.8p205. Die neueste Version, Ruby 3.1.2, wurde im April 2022 veröffentlicht und ist ein großes Versionsupgrade gegenüber der vorinstallierten macOS-Version.
Für eine lokale Entwicklungsumgebung möchten Sie wahrscheinlich Ruby 3 verwenden – ein sehr guter Grund, von den vorinstallierten Ruby-Versionen wegzuwechseln. So können Sie außerdem frei entscheiden, mit welcher Version Sie arbeiten möchten. Damit das möglich ist, verwenden wir virtuelle Ruby-Umgebungen.
Wie prüfe ich, welche Ruby-Version auf meinem Mac installiert ist?
Um zu prüfen, welche Version des Ruby-Interpreters nativ installiert ist, führen Sie diesen Befehl aus:
Wenn Sie kein Upgrade durchgeführt haben, enthält macOS Monterey Ruby 2.6.8. Wenn Sie ein Upgrade durchgeführt haben oder Ruby-Versionen mit rbenv, rvm oder anderen Ruby-Versionsmanagern verwalten, wird möglicherweise eine andere Version angezeigt. Ruby kann sich auch im Dateipfad /usr/local/bin/ruby befinden, wenn es mit dem Homebrew-Paketmanager für macOS installiert wurde.
Wo befindet sich der Ruby-Ordner auf dem Mac?
Der Ruby-Interpreter befindet sich unter macOS häufig nativ in den Dateipfaden /usr/bin/ruby oder /usr/local/bin/ruby, je nachdem, wo er installiert wurde. Ruby-Gems werden unter macOS nativ vom Betriebssystem installiert und verwaltet. Von sudo gem install und Änderungen an diesen Ruby-Gems wird abgeraten. Installieren Sie stattdessen eine virtuelle Ruby-Umgebung mit einem Tool wie rbenv.
Die virtuelle Ruby-Umgebung
Ein hilfreiches Konzept, das auch aus anderen Programmiersprachen und deren Tooling bekannt ist, ist die virtuelle Ruby-Umgebung. Wenn Sie bereits virtualenv für Python oder nvm für Node.js verwendet haben, sollte Ihnen Ruby’s virutalenv leichtfallen. Für den Einstieg benötigen Sie nur einige Tools aus dem Ruby-Ökosystem, etwa rbenv oder rvm.
Diese Tools vermeiden Konflikte mit der nativen Ruby-Version auf dem Mac, indem sie den Ruby-Quellcode aus dem Internet herunterladen, lokal kompilieren und unter einem Pfad verfügbar machen. Anschließend weisen sie Sie an, den Pfad zu diesem neuen Verzeichnis zu Ihrer bevorzugten Shell hinzuzufügen. So steht die neue Ruby-Version zur Verfügung, wenn Sie ein neues Terminalfenster öffnen.
Im Wesentlichen handelt es sich um Ruby-Versionsmanager, mit denen Sie je nach festgelegtem Ruby-Installationsverzeichnis schnell zwischen verschiedenen Ruby-Runtime-Versionen wechseln können.
Sollten Sie rbenv oder rvm verwenden?
Zwei beliebte Tools für virtuelle Ruby-Umgebungen sind rbenv und rvm. Da bestimmte Umgebungstools und Versionen im Zuge der Branchenentwicklung oft veralten, gehe ich nicht auf einen detaillierten Funktionsvergleich von rbenv und rvm1 ein. Stattdessen habe ich einige Ruby-erfahrene Entwicklerfreunde nach ihrer Meinung gefragt und mich für rbenv entschieden, da die meisten es empfohlen haben.
Weitere Manager für virtuelle Ruby-Umgebungen, die ich noch nicht ausprobiert habe, die aber erwähnenswert sind, sind chruby und ruby-install.
Legen wir mit rbenv los
Das Open-Source-Projekt rbenv wird auf GitHub gehostet. Dort finden Sie auch einen guten Ort, um Probleme zu bearbeiten und aktuelle Dokumentation in der rbenv-README aufzurufen.
Ruby mit rbenv installieren
Wie bei vielen anderen Tools verwenden wir den beliebten Homebrew-Paketmanager für macOS. Führen Sie den folgenden Befehl in Ihrem Terminal aus:
Sobald alles installiert ist, müssen wir rbenv anweisen, Ihre Shell einzurichten. So wird bei jedem Öffnen eines neuen Terminalfensters für die Eingabe von Befehlen die mit rbenv installierte Ruby-Runtime-Version verwendet (anstelle der unter macOS vorinstallierten Version Ruby 2.6.8).
Führen Sie den folgenden Befehl aus, um rbenv für Ihre Shell einzurichten:
Befolgen Sie die Anweisungen auf dem Bildschirm, falls Sie weitere Konfigurationen vornehmen müssen. Möglicherweise werden Sie aufgefordert, einen Befehl in die Konfiguration Ihrer Shell einzufügen. Wenn Sie macOS verwenden und die standardmäßige Z Shell (ZSH) nicht geändert haben, fügen Sie die folgende Codezeile oben in Ihre Datei ~/.zshrc ein:
Die Installation von rbenv ist jetzt abgeschlossen. Sie können einige Diagnosetests ausführen, um sicherzustellen, dass alles korrekt eingerichtet ist. Verwenden Sie dazu das vom rbenv-GitHub-Projekt bereitgestellte Tool rbenv-doctor:
Öffnen Sie ein neues Terminalfenster, damit die neue rbenv-Umgebung geladen wird.
Führen Sie den Befehl aus:
curl -fsSL https://github.com/rbenv/rbenv-installer/raw/main/bin/rbenv-doctor | zsh
Warnung: Dieser Befehl sollte nicht leichtfertig ausgeführt werden, da Sie Befehle aus einem öffentlichen Open-Source-GitHub-Repository in die Shell Ihrer Entwicklungsumgebung weiterleiten. Es ist möglich, dass ein böswilliger Akteur den Quellcode manipuliert hat. Prüfen Sie den Code daher unbedingt sorgfältig, bevor Sie diesen Befehl ausführen.
Wie installieren Sie mit rbenv eine neue Ruby-Version?
Glückwunsch, Sie haben Ihre eigene virtuelle Ruby-Umgebung eingerichtet! Mit einer funktionierenden rbenv-Konfiguration können Sie Ihre Ruby-Versionen vollständig verwalten.
Listen Sie zunächst die zur Installation verfügbaren Ruby-Versionen auf. So können Sie die neueste Ruby-Version oder eine bestimmte Version auswählen. Um mit rbenv alle Ruby-Versionen aufzulisten, führen Sie den folgenden Befehl aus:
Die Ausgabe lautete:
Anschließend können Sie eine dieser Ruby-Versionen installieren. Installieren wir mit rbenv Ruby 3.1.2:
Der Befehl lädt dann die entsprechenden Quelldateien herunter, extrahiert und kompiliert sie und installiert schließlich die Ruby-3.1.2-Runtime-Version, die anschließend in Ihrer Shell verfügbar ist.
Nach der Installation sollten Sie diese Version als ausgewählte Version festlegen, die bei jedem Start Ihrer Shell verwendet wird. Führen Sie dazu Folgendes aus:
Überprüfen Sie schließlich mit dem Befehl ruby --version in Ihrer Shell, ob alles wie erwartet funktioniert. Die Ausgabe sollte ungefähr so aussehen:
Bevor wir zum Schluss kommen, noch ein Hinweis zu rbenv global. Aufgrund des Namens des Befehls (global) war ich besorgt, dass seine Ausführung die vorinstallierte macOS-Ruby-Version beeinträchtigen könnte. Das ist nicht der Fall. Der Befehl bezieht sich auf die globale Benutzerkonfiguration, also die rbenv-Konfigurationsdatei unter ~/.rbenv/version. Das bedeutet, dass die Einstellung nicht an ein bestimmtes Ruby-Projekt oder -Verzeichnis gebunden ist.
Wie geht es also weiter?
Ruby-on-Rails-Schwachstellen und Ruby-Sicherheitslücken
Bevor Sie sich in Ihre Ruby-Entwicklungsarbeit stürzen, sollten Sie sich die folgenden Ressourcen ansehen. Sie helfen Ihnen, sichere Programmierkonventionen einzuhalten und Ihre Ruby-Gems vor Schwachstellen zu schützen. Sie eignen sich hervorragend, um Ruby-on-Rails-Schwachstellen zu verstehen, die durch Ruby-Gems des Frameworks entstehen, sowie allgemeine Ruby-Sicherheitslücken.
Ich empfehle Ihnen dringend die folgenden Ressourcen zu Ruby-Entwicklung und Ruby-Sicherheit:
Wenn Sie neu in der Ruby-Entwicklung sind oder nicht genau wissen, wie Open-Source-Abhängigkeiten in Ruby funktionieren, lesen Sie meinen Artikel Der definitive Leitfaden zur Verwaltung von Abhängigkeiten in Ruby-Gems.
Wenn Sie nicht davon überzeugt sind, dass Sicherheitslücken Ihre Projekte betreffen, empfehle ich Ihnen einen kurzen Artikel im Blog von DeveloperSteve: Mehr Sicherheit für Ruby-Gemfiles: Eine Schritt-für-Schritt-Anleitung mit Snyk. Darin scannt er einige Projekte mit dem Ruby-Sicherheitstool von Snyk. Snyk kann kostenlos genutzt werden und erleichtert Ihnen den Einstieg in Ruby.
Denken Sie schließlich daran, auf böswillige Remote-Code-Ausführung und andere Sicherheitsrisiken in Ruby-Gems zu achten. Solche Risiken entstehen durch Supply-Chain-Angriffe, die wir in verschiedenen Ökosystemen, einschließlich Ruby, beobachtet haben.
Probieren Sie jetzt unser kostenloses Tool Ruby-Codeprüfung aus und erfahren Sie, wie Snyk Code Ihren Code auf Sicherheits- und Qualitätsprobleme analysiert.
Starten Sie mit Capture the Flag
Erfahren Sie in unserem virtuellen On-Demand-Workshop für Einsteiger, wie Sie Capture-the-Flag-Herausforderungen lösen.



