RubyGems unter macOS aktualisieren – ohne sudo und System-Ruby
Christoph Schwob·3 Min. Lesezeit
Was ist neu: Zur Anleitung ausgebaut: Ruby per Homebrew, PATH-Einrichtung, gem-Befehle und Hinweis auf Versionsmanager.
Kurz & knapp
Das vorinstallierte Ruby unter /usr/bin/ruby ist selbst auf macOS 27 noch Version 2.6 und seit 2022 ohne Support – dessen Gems solltest du nicht mit sudo aktualisieren. Installiere stattdessen ein aktuelles Ruby mit brew install ruby und halte deine Gems mit gem update und gem cleanup aktuell.
Getestet mit: macOS 27, System-Ruby 2.6.10, Homebrew Ruby 4.0
RubyGems ist das Paketsystem der Programmiersprache Ruby. Damit installierst du Bibliotheken und Tools – sogenannte Gems – etwa bundler, rails oder jekyll. Früher war es unter macOS üblich, einfach alle Gems des mitgelieferten Ruby zu aktualisieren:
# Bitte nicht mehr verwenden!
sudo gem update `gem list | cut -d ' ' -f 1`
Das war schon damals keine gute Idee und ist es heute erst recht nicht.
Warum nicht das System-Ruby?
Dazu kommt: Die Gems des System-Ruby liegen in geschützten Systemverzeichnissen. Wer sie mit sudo verändert, riskiert Konflikte mit macOS selbst – und ein macOS-Update kann die Änderungen jederzeit wieder überschreiben. Das Aktualisieren der Gems macht außerdem das Ruby selbst nicht neuer.
Kurz gesagt: Das System-Ruby einfach in Ruhe lassen und für eigene Zwecke ein separates, aktuelles Ruby installieren.
Aktuelles Ruby mit Homebrew installieren
Am einfachsten geht das mit Homebrew. Falls du es noch nicht hast, findest du die Installation im verlinkten Artikel.
-
Ruby installieren:
brew install ruby -
Prüfen, welches Ruby aktiv ist. Öffne ein neues Terminal-Fenster und gib ein:
which ruby ruby -vErwartet wird
/opt/homebrew/bin/rubyund eine aktuelle Version (derzeit Ruby 4.0). Erscheint noch/usr/bin/ruby, fehlt die Homebrew-Zeile in deiner~/.zshrc– siehe Homebrew installieren. -
Ordner für Gem-Programme zum PATH hinzufügen. Programme, die du per
gem installinstallierst, landen in einem eigenen Ordner. Homebrew nennt ihn nach der Installation (brew info ruby); bei Ruby 4.0 ist das:echo 'export PATH="/opt/homebrew/lib/ruby/gems/4.0.0/bin:$PATH"' >> ~/.zshrcNach einem großen Ruby-Update (z. B. auf 4.1) ändert sich die Versionsnummer im Pfad – dann den Eintrag anpassen.
Gems verwalten und aktualisieren
| Befehl | Was er macht |
|---|---|
gem list |
Listet alle installierten Gems mit Version |
gem install bundler |
Installiert ein Gem |
gem outdated |
Zeigt Gems, für die es eine neuere Version gibt |
gem update |
Aktualisiert alle installierten Gems |
gem update bundler |
Aktualisiert nur ein bestimmtes Gem |
gem update --system |
Aktualisiert RubyGems selbst |
gem cleanup |
Entfernt alte Versionen aktualisierter Gems |
gem cleanup --dryrun |
Zeigt nur an, was gem cleanup entfernen würde |
Für die regelmäßige Pflege reicht:
gem update && gem cleanup
Mehrere Ruby-Versionen: Versionsmanager
Brauchst du für verschiedene Projekte unterschiedliche Ruby-Versionen, ist ein Versionsmanager die bessere Wahl. Verbreitet sind rbenv (öffnet in neuem Tab), chruby (öffnet in neuem Tab) und mise (öffnet in neuem Tab), das neben Ruby auch Node.js, PHP und viele weitere Sprachen verwaltet. Für gelegentliche Tools ist das Ruby aus Homebrew aber völlig ausreichend.
Häufige Fragen
Darf ich die Gems des System-Ruby mit sudo aktualisieren?
Davon ist abzuraten. Das System-Ruby gehört zu macOS, ist veraltet und wird von Apple nur aus Kompatibilitätsgründen mitgeliefert. Mit sudo gem update riskierst du Konflikte, die beim nächsten macOS-Update ohnehin wieder überschrieben werden können.
Welches Ruby verwendet mein Terminal gerade?
which ruby zeigt den Pfad, ruby -v die Version. Steht dort /usr/bin/ruby, ist es das System-Ruby; bei /opt/homebrew/bin/ruby das Ruby aus Homebrew.
Was ist der Unterschied zwischen gem update und gem update --system?
gem update aktualisiert die installierten Gems. gem update --system aktualisiert RubyGems selbst, also das Programm gem.
Brauche ich rbenv, chruby oder mise?
Nur wenn du mehrere Ruby-Versionen parallel brauchst, z. B. für verschiedene Projekte. Für gelegentliche Tools reicht das Ruby aus Homebrew.
Quellen & weiterführende Links
- Ruby Maintenance Branches (Support-Status aller Versionen) (öffnet in neuem Tab) – ruby-lang.org
- macOS Catalina 10.15 Release Notes – Scripting Language Runtimes (öffnet in neuem Tab) – Apple Developer
- RubyGems Command Reference (öffnet in neuem Tab) – RubyGems Guides
- ruby – Homebrew Formula (öffnet in neuem Tab) – formulae.brew.sh
- rbenv (öffnet in neuem Tab) – GitHub
- chruby (öffnet in neuem Tab) – GitHub
- mise (öffnet in neuem Tab) – mise.jdx.dev
Geschrieben von
Christoph Schwob (öffnet in neuem Tab)
Ich bin Christoph Schwob, halbkreativer Entwickler aus Österreich und arbeite seit über 10 Jahren an und mit TYPO3. Hier sammle ich Lösungen, Code-Snippets und Notizen rund um TYPO3, macOS, Server, Homelab und alles andere.
Das könnte dich auch interessieren
- PHP unter macOS installieren und Version wechseln – 5. Dezember 2015
- Homebrew unter macOS: Installation & die wichtigsten Befehle – 22. November 2015
- .DS_Store-Dateien: verhindern, löschen und aus Git fernhalten – 27. Mai 2017