ADMIN

2025

04

2025-03-29T12:00:00

Collaboration

PRAXIS

054

Open-Source-Tipp

Softwareverteilung

Paketmanager

Software mit Homebrew installieren

À la carte

von Thorsten Scherf

Veröffentlicht in Ausgabe 04/2025 - PRAXIS

Homebrew bezeichnet sich selbst als der fehlende Paketmanager für macOS. Tatsächlich steht eine Vielzahl an sehr nützlicher Software zur Installation zur Verfügung, sobald Sie den Paketmanager einmal auf Ihrem System eingerichtet haben. Wie Sie Software auch aus anderen Git- Repositories installieren können, erfahren Sie in diesem Open-Source-Tipp.

Im letzten Monat haben wir Ihnen an dieser Stelle [1] den Homebrew-Paketmanager für macOS vorgestellt, wichtige Begriffe erläutert und gleichzeitig einen Überblick über die grundlegenden Kommandos gegeben. Nun soll es in diesem Open-Source-Tipp weitergehen und wir möchten Ihnen zeigen, wie Sie auch Software aus Drittanbieterquellen oder Ihren eigenen Git-Repositories mithilfe von Homebrew auf einem macOS-System installieren.
Plug-in für oh-my-zsh
Bevor wir in die Feinheiten von Homebrew eintauchen aber noch der Hinweis, dass für das beliebte Framework für die z-Shell (zsh) namens oh-my-zsh eine eigene Erweiterung für Homebrew zu Verfügung steht. Das Framework wurde bereits im Open-Source-Tipp 06/2022 [2] ausführlich besprochen. Verwenden Sie das oh-my-zsh-Framework bereits auf Ihrem System, installieren Sie das Plug-in mit
omz plugin enable brew
Danach stehen Ihnen neben der brew Shell-Auto-Completion [3] auch jede Menge Shell-Aliase zur Verfügung, die die tägliche Arbeit mit dem Paketmanager erheblich vereinfachen. Möchten Sie beispielsweise eine Übersicht sämtlicher Formulae bekommen, für die ein Update verfügbar ist, verwenden Sie hierfür den brew-Befehl brew outdated. Ein Upgrade der Formluae nehmen Sie dann mit diesem Kommando vor:
Im letzten Monat haben wir Ihnen an dieser Stelle [1] den Homebrew-Paketmanager für macOS vorgestellt, wichtige Begriffe erläutert und gleichzeitig einen Überblick über die grundlegenden Kommandos gegeben. Nun soll es in diesem Open-Source-Tipp weitergehen und wir möchten Ihnen zeigen, wie Sie auch Software aus Drittanbieterquellen oder Ihren eigenen Git-Repositories mithilfe von Homebrew auf einem macOS-System installieren.
Plug-in für oh-my-zsh
Bevor wir in die Feinheiten von Homebrew eintauchen aber noch der Hinweis, dass für das beliebte Framework für die z-Shell (zsh) namens oh-my-zsh eine eigene Erweiterung für Homebrew zu Verfügung steht. Das Framework wurde bereits im Open-Source-Tipp 06/2022 [2] ausführlich besprochen. Verwenden Sie das oh-my-zsh-Framework bereits auf Ihrem System, installieren Sie das Plug-in mit
omz plugin enable brew
Danach stehen Ihnen neben der brew Shell-Auto-Completion [3] auch jede Menge Shell-Aliase zur Verfügung, die die tägliche Arbeit mit dem Paketmanager erheblich vereinfachen. Möchten Sie beispielsweise eine Übersicht sämtlicher Formulae bekommen, für die ein Update verfügbar ist, verwenden Sie hierfür den brew-Befehl brew outdated. Ein Upgrade der Formluae nehmen Sie dann mit diesem Kommando vor:
brew upgrade --formula
Durch die brew-oh-my-zsh-Erweiterung können Sie hierfür auch einfach die beiden Aliase verwenden, um sich so eine Menge Tipparbeit zu sparen:
bo
bfu
Eine Übersicht der verfügbaren Aliase erhalten Sie mittels des Kommandos omz plugin info brew.
Git-Repository und JSON-API
Möchten Sie eine neues Paket über brew installieren, beispielsweise für den Mail-User-Agent (MUA) neomutt, gelingt dies mit brew install neomutt. Mit der Homebrew-Version 4.0.0 vom Februar 2023 hat sich die Methode zur Installation von Paketen allerdings wesentlich geändert. Anstatt einen Klon des homebrew-core-Default-Repositories anzulegen, bezieht das Tool alle Informationen aus den Formulae nun standardmäßig aus gehosteten JSON-Dateien. Diese JSON-Files enthalten ebenfalls die notwendigen Metadaten, die für die Installation einer Software mithilfe von brew benötigt werden. Für neomutt würde ein Zugriff also auf die JSON-Datei "neomutt.json" [4] anstatt auf "neomutt.rb" [5] erfolgen. In älteren brew-Versionen als 4.0.0 sehen Sie das Repository, aus dem die Formula-Datei zur Installation eines Pakets kommt, mit dem folgenden Befehl:
brew tap
homebrew/core
Brew-Versionen neuer oder gleich 4.0.0 zeigen dieses Standard-Repository nicht mehr an, sondern Sie sehen in dem Fall an dieser Stelle dann lediglich externe Repositories, die auf Ihrem System eingebunden sind. Trotz dieser Umstellung bleiben die ursprünglichen Formula-Dateien im homebrew-core-Repository bestehen. Sie sind nach wie vor verfügbar und lassen sich bei Bedarf verwenden, beispielsweise wenn Anpassungen notwendig sind oder Sie bestimmte Information in einer Formula-Datei suchen.
Dies geht in einer DSL-basierten Ruby-Datei doch bedeutend einfacher als in einer JSON-Datei. Die JSON-API bietet jedoch eine effizientere und schnellere Methode, um Pakete mittels brew zu installieren. Auch für das Einspielen von Software aus einem Drittanbieter-Repository kommen die Ruby-basierten Formula-Dateien noch zum Einsatz, insofern ist ein Grundverständnis, wie diese funktionieren, in jedem Fall hilfreich.
Externe Repositories als Installationsquelle
Tatsächlich gibt es eine ganze Reihe dieser externen Repositories, die Software für die Installation mit brew zur Verfügung stellen. Als Beispiel in diesem Artikel soll das Repositry der Sveriges Television (SVT) [6], also dem schwedischen Fernsehen, dienen. Dieses enthält eine paar nützliche Tools für die Video- und Audiobearbeitung unter macOS. Da das Repository der Namenskonvention "https:// github.com/user/homebrew-<name>" entspricht, können Sie es einfach mit dem folgenden brew-Kommando auf Ihrem macOS-System hinzufügen:
brew tap svt/avtools
Möchten Sie ein Repository hinzufügen, das nicht auf Github liegt oder nicht der Konvention (homebrew-name) entspricht, müssen Sie zusätzlich noch die URL mit angeben:
brew tap foo/myrepo http://github.com/foo/myrepo
oder auch
brew tap foo/homebrew-repo http://example.com/foo/ homebrew-myrepo
Rufen Sie danach das folgende Kommando auf, sehen Sie, dass das neue Repository nun als Git-Clone auf Ihrem System zur Verfügung steht:
brew tap
svt/avtools
Taps werden im Dateisystem unterhalb des Homebrew-Präfixes gefolgt von "Library/Taps" abgelegt. Auf einem Apple-ARM-basierten System finden Sie das svt-Repository also unter dem Pfad "/opt/homebrew/Library/Taps/svt/homebrew-avtools". Wechseln Sie in dieses Verzeichnis, können Sie mit dem Repository natürlich wie mit jedem anderen Git-Repository auch umgehen. So sehen Sie beispielsweise die Remote-Repository-URL mit dem nachfolgenden Kommando:
cd /opt/homebrew/Library/Taps/svt/ homebrew-avtools
git remote -v
origin https://github.com/svt/homebrew-avtools (fetch)
origin https://github.com/svt/homebrew-avtools (push)
Eine Übersicht der in diesem Repository enthaltenen Formulae und Casks erhalten Sie mit diesem Befehl:
brew tap-info svt/avtools --json
Die Installation eines Pakets aus diesem Repository erfolgt, wie gewohnt, mithilfe von brew install. Sollten Sie das Repository nicht mehr verwenden wollen, lässt es sich wie folgt wieder von Ihrem System entfernen:
brew untap svt/avtools
Eigene Formeln erstellen
Um nun Ihre eigene Software mit brew zu installieren, legen Sie hierfür innerhalb Ihres Software-Repositories einfach einen neuen Ordner, beispielsweise "Formulae", an. Darin speichern Sie die Ruby-basierte Formula-Datei mit den Metainformationen für Ihre Software ab. Als Beispiel, wie eine solche Datei aussehen kann, greifen Sie einfach auf die zuvor schon erwähnte "neomutt.rb" [5] zurück. Auch die Dokumentation [7] enthält nützliche Informationen, um eine neue Formula-Datei zu schreiben.
Wichtig ist, dass Sie eine URL, unter der Ihre Software in den Sourcen und auch als Binär-Paket zu finden ist, in der Formula-Datei angeben. Außerdem müssen Sie eine Prüfsumme für die Software aufführen. Haben Sie also beispielsweise ein bestimmtes Release Ihrer Software mit einem Tag versehen, erzeugen Sie die SHA256-basierte Prüfsumme einfach mittels curl und dem Tool shasum. Das folgende Beispiel zeigt die Prüfsumme für eine bestimmte Version von neomutt:
curl -sL https://github.com/neomutt/neomutt/archive/refs/tags/20250113.tar.gz | shasum -a 256
cc7835e80fd72af104a8e146e009e93e687cefbc6c11725ee2ed11d7377486ff
Vergleichen Sie diese mit dem Wert aus der Formula-Datei [4] und Sie werden feststellen, dass die Prüfsumme identisch ist. Im Idealfall verwenden Sie für Ihr Software-Repository wieder die Namenskonvention "user/homebrew-<name>", Also beispielsweise "tscherf/homebrew-foo". In diesem Fall können Sie das Repository dann, wie bereits im Abschnitt "Externe Repositories" beschrieben, einrichten, ohne die komplette URL angeben zu müssen.
Fazit
Homebrew ist ein vielseitiger Paketmanager für macOS. Nicht nur ermöglicht er die unkomplizierte Installation von Software über die JSON-API des Paketmanagers selbst, sondern bietet auch flexible Möglichkeiten zur Integration eigener Software-Repositories. Entwickler können durch das Erstellen eigener Ruby-basierter Formula-Dateien ihre Software problemlos in das Homebrew-Ökosystem einbinden. Diese Formulae werden dem eigenen Repository hinzugefügt und anschließend über den brew-tap-Befehl systemweit verfügbar gemacht. Die standardisierte Vorgehensweise bei der Installation mittels brew install bleibt dabei erhalten, unabhängig davon, ob die Software aus der JSON-API oder einem externen Repository stammt. Dies macht Homebrew zu einem nützlichen Werkzeug sowohl für Endanwender als auch für Entwickler, die ihre eigene Software auf macOS-Systemen bereitstellen möchten.
(dr)
Link-Codes
[3] brew-Shell Auto-Completion: https://docs.brew.sh/Shell-Completion