Skip to main content

So installieren Sie Ruby auf einem macOS für die lokale Entwicklung

Artikel von:
wordpress-sync/blog-feature-ruby-security

27. September 2022

0 Min. Lesezeit

Wenn Sie mit der Entwicklung von Ruby oder Ruby on Rails beginnen, werden Sie das wissen wollen:

  1. Wie Sie Ruby richtig auf dem Mac installieren.

  2. Wie Sie eine lokale Entwicklungsumgebung einrichten, die nicht mit brew oder einer bestehenden Installation von Ruby 2.7 Mac in Konflikt gerät.

In diesem Tutorial lernen Sie, wie Sie beides tun können! Keine Sorge, wenn Sie die neuen macOS M1 Laptops haben. Diese Anleitung funktioniert auch für die Installation von Ruby auf Mac M1.

Führen Sie niemals „brew install ruby“ aus

In einigen Anleitungen und Blogartikeln werden Sie angewiesen, Ruby zu installieren, indem Sie brew install ruby ausführen oder Ihre vorhandenen Ruby-Versionen auf einem macOS mit dem Befehl update ruby mac aktualisieren. Ich empfehle Ihnen dringend, dies komplett zu vermeiden.

Allerdings hat der Reddit-Benutzer postmodernin einem Ruby-Thread mitgeteilt, dass Sie die brew-Installation möglicherweise explizit in ein anderes Verzeichnis installieren lassen können. Brew wird standardmäßig in /usr/local installiert und laut postmodern beeinträchtigt dies nicht die Ruby-Skripte des Apple-Systems, da deren Interpreter-Speicherort hartkodiert auf /usr/bin/ruby liegt. Sie weisen auch darauf hin, dass Apple plant, die vorinstallierten Versionen von Python, Ruby und Perl veralten zu lassen.

Warum können Sie das System Ruby nicht auf dem Mac verwenden?

Wenn Sie Befehle ausführen, die Ihre systemeigene Ruby-Version ändern, wie z. B. brew install ruby oder brew uninstall ruby, dann riskieren Sie, dass Funktionen und Fähigkeiten Ihres macOS zerstört werden (dies gilt auch für Mac M1).

Außerdem ist es wichtig, darauf hinzuweisen, dass die auf dem macOS vorinstallierte Version von Ruby veraltet ist. Auf einem neuen 2022 M1 Laptop lautet sie ruby 2.6.8p205. Die neueste Version, Ruby 3.1.2, wurde im April 2022 veröffentlicht und ist ein größeres Versions-Upgrade als die, die auf dem macOS vorinstalliert ist.

Wahrscheinlich werden Sie Ruby 3 für eine lokale Entwicklungsumgebung verwenden wollen – ein sehr guter Grund, von den vorinstallierten Ruby-Versionen abzuweichen. Außerdem haben Sie so die Freiheit, zu wählen, mit welcher Version Sie arbeiten möchten. Um diese Magie zu ermöglichen, wechseln wir zu virtuellen Ruby-Umgebungen.

Wie überprüfe ich, welche Version von Ruby auf meinem Mac installiert ist?

Um zu überprüfen, welche Version des Ruby-Interpreters Sie nativ installiert haben, führen Sie den Befehl aus:

1/usr/bin/ruby --version

Wenn Sie noch kein Upgrade durchgeführt haben, wird die macOS Monterey-Version mit Ruby 2.6.8 ausgeliefert. Wenn Sie ein Upgrade durchgeführt haben oder Ruby-Versionen mit rbenv, rvm oder anderen Ruby-Versionsmanagern verwalten, sehen Sie möglicherweise eine andere Version. Manchmal finden Sie Ruby auch im Dateipfad /usr/local/bin/ruby, 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 auf dem macOS oft 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. Es wird davon abgeraten, sudo gem install zu verwenden oder Änderungen an diesen Ruby-Gems vorzunehmen. Ziehen Sie stattdessen die Installation einer virtuellen Ruby-Umgebung mit einem Tool wie rbenv in Betracht.

Die virtuelle Ruby-Umgebung

Ein großartiges Konzept, das auch anderen Programmiersprachen und deren Werkzeugen vertraut ist, ist die virtuelle Ruby-Umgebung. Wenn Sie die virtualenv von Python oder die nvm von Node.js verwendet haben, dann sollte Ihnen der Umstieg auf die virutalenv von Ruby leicht fallen. Alles, was Sie für den Anfang brauchen, sind ein paar Tools aus dem Ruby-Ökosystem, wie rbenv oder rvm.

Diese Tools vermeiden Konflikte mit der nativen Ruby Mac-Version, indem sie den Ruby-Quellcode aus dem Internet holen, ihn lokal kompilieren und unter einem Pfad verfügbar machen. Sie werden dann angewiesen, diesen neuen Verzeichnispfad zur Shell Ihrer Wahl hinzuzufügen, damit die neue Ruby-Version zur Verfügung steht, sobald Sie neue Terminalschnittstellen öffnen.

Dies sind im Wesentlichen Ruby-Versionsmanager, mit dem Sie je nach Bedarf schnell zwischen verschiedenen Ruby-Laufzeitversionen wechseln können, je nachdem, welches Ruby-Installationsverzeichnis festgelegt wurde.

Sollten Sie rbenv oder rvm verwenden?

Zwei beliebte Tools für virtuelle Ruby-Umgebungen sind rbenv und rvm. Da bestimmte Umgebungstools und -versionen dazu neigen, im Laufe der Zeit zu veralten, verzichte ich auf einen detaillierten Vergleich der Funktionsmatrix von rbenv gegenüber rvm1. Stattdessen habe ich einige Ruby-erfahrene Entwickler/innen nach ihrer Meinung gefragt und mich für rbenv entschieden, da die meisten von ihnen es empfohlen haben.

Andere Ruby-Manager für virtuelle Umgebungen, die ich noch nicht erforscht habe, die aber dennoch erwähnenswert sind, sind chruby und ruby-install.

Lassen Sie uns mit rbenv beginnen

Das Open Source-Projekt rbenv wird auf GitHub gehostet und ist ein großartiger Ort, um Probleme zu lösen und die aktuelle Dokumentation in der rbenv README zu erhalten.

So installieren Sie Ruby rbenv

Wie bei vielen anderen Tools auch greifen wir auf den beliebten Homebrew macOS Paketmanager zurück. Führen Sie den folgenden Befehl in Ihrem Terminal aus:

1brew install rbenv ruby-build

Sobald alles installiert ist, müssen wir rbenv anweisen, unsere Shell einzurichten, damit wir die Ruby-Laufzeitversion verwenden, die wir mit rbenv installiert haben, wenn wir ein neues Terminalfenster öffnen, um Befehle in den Prompt einzugeben (im Gegensatz zur vorinstallierten Ruby 2.6.8 Version auf dem macOS).

Um rbenv mit Ihrer Shell einzurichten, führen Sie den folgenden Befehl aus:

1rbenv init

Folgen Sie den ausgegebenen Anweisungen auf dem Bildschirm, wenn zusätzliche Konfigurationen erforderlich sind. Sie werden möglicherweise aufgefordert, einen Befehl in die Konfiguration Ihrer Shell einzufügen. Wenn Sie mit einem macOS arbeiten und nicht von der standardmäßigen Z-Shell (ZSH) abgewichen sind, sollten Sie sicherstellen, dass Sie die folgende Codezeile am Anfang Ihrer Datei ~/.zshrc einfügen:

1eval "$(rbenv init - zsh)"

Der rbenv-Installationsprozess ist nun abgeschlossen. Vielleicht möchten Sie noch einige diagnostische Checks durchführen, um sicherzustellen, dass alles korrekt eingerichtet ist. Wenn dies der Fall ist, können Sie das Tool rbenv-doctor ausführen, das das GitHub-Projekt rbenv bereitstellt:

  1. Öffnen Sie ein neues Terminalfenster, sodass die neue rbenv-Umgebung geladen ist.

  2. Führen Sie den Befehl:

    curl -fsSL https://github.com/rbenv/rbenv-installer/raw/main/bin/rbenv-doctor | zsh

Warnung: Diesen Befehl sollten Sie nicht auf die leichte Schulter nehmen, denn Sie leiten Befehle in die Shell Ihrer Entwicklungsumgebung ein, die aus einem öffentlichen und quelloffenen GitHub-Repository stammen. Es ist möglich, dass ein böswilliger Akteur am Quellcode herumgepfuscht hat. Daher sollten Sie den Code genau überprüfen, bevor Sie diesen Befehl ausführen.

Wie verwenden Sie rbenv, um eine neue Ruby-Version zu installieren?

Herzlichen Glückwunsch zur Erstellung Ihrer eigenen virtuellen Ruby-Umgebung! Jetzt, da Sie ein funktionierendes rbenv eingerichtet haben, können wir es verwenden, um Ihre Ruby-Versionen vollständig zu verwalten.

Zunächst möchten Sie auflisten, welche Ruby-Versionen zur Installation zur Verfügung stehen, damit Sie die neueste Ruby-Version oder vielleicht eine bestimmte Version auswählen können, nach der Sie suchen. Um mit rbenv alle Ruby-Versionen aufzulisten, führen Sie den folgenden Befehl aus:

1curl -fsSL https://github.com/rbenv/rbenv-installer/raw/main/bin/rbenv-doctor | zsh

Die Ausgabe davon war:

12.6.10
22.7.6
33.0.4
43.1.2
5jruby-9.3.6.0
6mruby-3.1.0
7picoruby-3.0.0
8rbx-5.0
9truffleruby-22.1.0
10truffleruby+graalvm-22.1.0
11
12Only latest stable releases for each Ruby implementation are shown.
13Use 'rbenv install --list-all / -L' to show all local versions.

Sie können dann mit der Installation einer dieser Ruby-Versionen fortfahren. Lassen Sie uns rbenv verwenden, um die Ruby-Version 3.1.2 zu installieren:

1rbenv install 3.1.2

Der Befehl beginnt dann damit, die entsprechenden Quellcodedateien zu holen, um die für Ihre Shell verfügbare Ruby 3.1.2-Laufzeitversion zu extrahieren, zu kompilieren und dann zu installieren.

Wenn Sie die Installation abgeschlossen haben, sollten Sie sie so einstellen, dass sie bei jedem Start Ihrer Shell die gewählte Version ist. Dazu müssen Sie das Programm ausführen:

1rbenv global 3.1.2

Schließlich können Sie überprüfen, ob dies wie erwartet funktioniert, indem Sie ruby --version in Ihrer Shell ausführen, was ein ähnliches Ergebnis liefern sollte:

1ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [arm64-darwin21]

Eine Anmerkung zu rbenv global, bevor wir zum Ende kommen. Aufgrund der Namensgebung des Befehls (global) hatte ich die Befürchtung, dass die Ausführung dieses Befehls irgendwie mit der vorinstallierten macOS Ruby-Version interferieren könnte. Das ist nicht der Fall. Der Befehl bezieht sich auf die globale Benutzerkonfiguration, d. h. die rbenv-Konfigurationsdatei unter ~/.rbenv/version, und ist somit nicht an ein bestimmtes Ruby-Projekt/Verzeichnis gebunden.

Was kommt als Nächstes?

Ruby on Rails-Schwachstellen und Ruby-Sicherheitsschwachstellen

Bevor Sie sich in die Ruby-Entwicklung stürzen, sollten Sie die folgenden Ressourcen nutzen, um sicherzustellen, dass Sie die Konventionen für eine sichere Programmierung einhalten und Ihre Ruby-Gems vor Schwachstellen bewahren. Sie eignen sich hervorragend für Ruby on Rails-Schwachstellen, die in den Ruby-Gems des Frameworks auftreten, sowie für Ruby-Schwachstellen im Allgemeinen.

Ich empfehle Ihnen die folgenden Ressourcen zum Thema Ruby-Entwicklung und Ruby-Sicherheit:

Vergessen Sie nicht, auf bösartige Remote-Code-Ausführung und andere Sicherheitsrisiken in Ruby-Gems zu achten, die durch Angriffe in der Lieferkette entstehen, die wir in verschiedenen Ökosystemen, auch in Ruby, beobachtet haben.

Testen Sie jetzt unser kostenloses Ruby Code Checker-Tool, um zu sehen, wie die Snyk Code Engine Ihren Code auf Sicherheits- und Qualitätsprobleme analysiert.

wordpress-sync/blog-feature-ruby-security

Sie möchten Snyk in Aktion erleben?

See how these 8 tips can help you catch security issues in the pipe BEFORE you push to production ⭐️