Nachdem jetzt Homebrew in der Version 3.0.0 auch für die neuen M1 Macs mit ARM basierten Apple-Silikon zur Verfügung steht, Zeit für einen kleinen Homebrew-Guide in deutsch.
Was ist Homebrew und wofür brauche ich das
Das ist wohl eine der wichtigsten Fragen. Homebrew ist ein Paketmanager für die Kommandozeile zur Installation von Open-Source Anwendungen auf macOS. Linux Benutzer kennen diese Paketmanager, aber auf macOS fehlen diese Standards leider nativ. Wer sich jetzt noch nicht über bestimmte fehlende Anwendungen wie z.B. wget auf seinem Mac gewundert hat, hat wahrscheinlich auch keinen Bedarf für einen Paketmanager wie Homebrew. Allen andere möchte ich hier einmal zeigen was geht und vor allem wie es geht.
Installation von Homebrew
Die Installation erfolgt natürlich, wie sollte es auch anders sein, im Terminal (also der CLI von macOS). Dazu öffnen wir die Terminal App und geben folgendes Kommando ein:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Das Kommando macht nichts weiter als ein Installations-Script von Github herunterzuladen und auszuführen. Das Skript selbst installiert Homebrew unter dem bevorzugten Präfix (/usr/local für macOS Intel, /opt/homebrew für Apple Silicon), so dass beim nutzen von homebrew kein Sudo benötigt wird. Es kann auch dann ausgeführt werden, wenn in /usr/local bereits Inhalte installiert sind. Während der Ausführung wird jeder Schritt erläutern und muss bestätigt werden bevor Änderungen vorgenommen werden.
Noch etwas zu den Systemvoraussetzungen. Homebrew benötigt einen 64-bit Intel CPU oder natürlich eine Apple Silicon CPU, mindestens macOS Mojave (10.14) und die installierten Xcode Command Line Tools (CLT) die wie folgt installiert werden können:
xcode-select —install
Wer Homebrew wider Erwarten nicht mag und wieder von seinem System entfernen möchte, macht das wie bei der Installation mit einem Script:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall.sh)"
Übrigens, beide Scripte liefern uns mit dem –help Schalter weitere Install bzw. Uninstall Optionen.
Installation von Paketen
Nachdem Homebrew nun installiert ist, können wir auch schon die ersten Pakete installieren. Tatsächlich ist das nun genauso simpel wie unter Linux. Kommen wir zurück zu dem oben genannten Beispiel mit wget. wget ist eine Befehlszeilenanwendung zum Herunterladen von Ressourcen über die URL. Im Vergleich zu curl, das mit macOS geliefert wird und wir ja für die Installation von Homebrew verwenden, ist wget nicht interaktiv und kann im Gegensatz zu curl auch Hintergrund ausgeführt werden.
brew install wget
Tatsächlich können wir wget natürlich auch, wie viele andere Anwendungen, ohne Homebrew installieren. Exemplarisch hier mal die erforderlichen Schritte:
1. Installation der Xcode CLI Tools
xcode-select --install
2. wget Source mit curl herunterladen
cd ~/Downloads
curl -O https://ftp.gnu.org/gnu/wget/wget-1.19.5.tar.gz
3. Heruntergeladene Sourcen entpacken und konfigurieren
tar -zxvf wget-1.19.5.tar.gz
cd wget-1.19.5/
./configure
4. Ausführen von`make`und testen der Installation
make
make install
wget http://ftp.gnu.org/gnu/wget/wget-1.19.5.tar.gz
Das kann jetzt jeder beurteilen wie er möchte, aber ich verwende da doch lieber Homebrew.
Welche Pakete sind bereits installiert
Natürlich möchte man auch wissen, welche Pakete eigentlich installiert sind. Das geht genau so einfach mit dem folgenden Kommando:
brew list
Die Ausgabe ist relativ unspektakulär und zeigt letztendlich nur die Namen der installierten Pakete an.
Sollte es hier zu unübersichtlich werden, kann die Ausgabe auch in eine Datei umgeleitet werden:
brew list > homebrewpackages.txt
Selbstverständlich tauen dort auch immer wieder mal Pakete auf, die wir nicht richtig zuordnen können. Hier ist es hilfreich, sich mal die Informationen eines Paketes anzuschauen:
brew info <paketname>
Wer auch noch wissen möchte, wo das Paket installiert wurde dem hilft das Kommando:
brew --prefix <paketname>
Standardmäßig werden alle Pakete in allen Versionen von macOS im Verzeichnis `/usr/local/Cellar/`installiert. Zusätzlich werden im Verzeichnis `/usr/local/opt/` noch symbolische Links erzeugt. Das ganze kann mit dem folgenden Kommando angezeigt werden:
ls -l /usr/local/opt/
Update, Upgrade
Natürlich muss sowohl Homebrew als auch unsere installierten Pakete mal aktualisiert werden. Im Fall von Homebrew machen wir das mit dem Kommando:
brew update
Was die Pakete angeht, könnte es vor einem Update/Upgrade ganz interessant sein, welche Pakete überhaupt ein Update benötigen. Dies überprüfen wir mit dem folgenden Kommando:
brew outdated
Danach können wir ein einzelnes Paket aktualisieren:
brew upgrade <paketname>
oder natürlich gleich alle aktualisieren:
brew upgrade
Wie finden wir Pakete zum installieren
Natürlich wollen wir auch neue Pakete installieren und dazu müssen wir natürlich wissen, welche es gibt. Auf der Kommandozeile geht das über eine einfach suche:
brew search <search_string>
Wenn wir zum Beispiel nach allem was für Azure verfügbar ist suchen, verwenden wir folgendes:
brew search azure
In der Ausgabe sehen wir alle Pakete die für Microsoft Azure (bzw. die „azure“ im Namen haben) verfügbar sind. Pakete mit einem grünen Häkchen sind bereits installiert.
Kleiner Tip am Rande für alle die gern mit dem Mac arbeiten aber trotzdem Windows Systeme mit Powershell verwalten müssen. Über Homebrew lässt sich auch ganz hervorragend PowerShell Core auf dem Mac installieren und natürlich wie bei jedem anderen Paket auch aktualisieren und ggf. wieder entfernen.
brew install --cask powershell
Mehr Informationen hier: https://docs.microsoft.com/en-us/powershell/scripting/install/installing-powershell-core-on-macos?view=powershell-7.1
Uninstall von Paketen
Natürlich wollen wir auch mal das eine oder andere Paket wieder deinstallieren. Das geht mit dem Kommando:
brew uninstall <paketname>
Das war jetzt erstmal nur eine kleine Einführung in das Thema Homebrew. Wer mehr wissen möchte findet hier noch einige Links zum Thema.
Weiterführende Links
- Homebrew Pakete – https://formulae.brew.sh/formula/
- Homebrew Manpage – https://docs.brew.sh/Manpage
- My Top Homebrew Packages for 2020 – https://medium.com/better-programming/my-top-homebrew-packages-for-2020-b6565d46de85
- Homebrew on GitHub – https://github.com/Homebrew
Schöner Einstiegsartikel für ein sehr nützliches Tool.
Gibt es auch eine Möglichkeit eine ältere Version eines Paketes zu installieren?
Z.B. wurde Saxon 9.9.1.7 als Formula zur Verfügung gestellt. Zur aktuellen Version 10.5 gibt es da größere Unterschiede, so dass diese wegen Abhängigkeiten nicht installiert werden kann.
Leider schient die 9er Version nicht mehr verfügbar zu sein.
Oder gibt es per Commandline Möglichkeiten diese doch per Homebrew noch zu installieren?
Hallo Thomas,
ich hatte dieses Problem bisher noch nicht, weiß aber, dass dies wohl nicht ‚mehr‘ so einfach ist. Ich habe in meiner KB diesen Artikel dazu gefunden, vielleicht hilft er dir ja weiter.
Gruß
Thomas
Perfekt, der Artikel hat die Lösung gebracht.
Somit konnte ich die erforderliche Version installieren.
Gruß
Thomas
Prima, das freut mich.
Danke Ihnen, für diesen tollen Artikel.
Danke für die kurze und sehr gute Anleitung. Habe damit homebrew und dann gcc auf meinem MacPro installiert. Vom gcc nutze ich gfortran, was bisher gut funktionierte. Als ich dann aber „leider “ das Update auf Monterey machte, gab es mehrere böse Überraschungen. Die schlimmste ist, das mit gfortran übersetzte Programme nicht mehr in Dateien schreibt, sie bleiben einfach leer ohne Fehlermeldung. Die Ausgabe auf den Schirm funktioniert, eine Umleitung (>) in eine Datei funktioniert aber auch nicht. Es muss nach meiner Einschätzung an Sicherheitsmaßnahmen in Monterey liegen.
Hat jemand eine Idee, was da los sein könnte und was man dagegen machen kann?
besten Dank Thomas Dü