Seite wählen

NETWAYS Blog

Homebrew – Der fehlende Paketmanager für macOS

Manche haben noch nie davon gehört, einige kennen ihn, und viele lieben ihn.

Zu Teenagerzeiten kannte ich nur Windows und dessen Umgang, wie man Software installiert und ebenfalls lästige Update-Hinweise beim Öffnen der Programme. Wie viele andere auch, begann ich meine Ausbildung mit einem Ubuntu auf meiner Workstation und lernte Linux Distributionen kennen und lieben. Einher ging die einfache Arte und Weiße an einer zentralen Stelle Software zu installieren, zu verwalten und auf dem neusten Stand zu halten. Zum Ende meiner Ausbildung bekam ich die Wahl eines neuen Notebooks und entschied mich für ein MacBook. Jedoch fand ich die manuelle Installation der Software und Pakete für die Kommandozeile sehr zeitaufwendig. Daraufhin empfahl mir ein damaliger Arbeitskollege Homebrew.

Homebrew ist eine in Ruby geschriebene, opensource Paketverwaltung für macOS, welche 2009 ursprünglich von Max Howell geschrieben wurde. Zur Unterstützung weiterer Pakete durch Beiträge anderer Nutzer wird GitHub verwendet. Modifikationen sind also schnell rückgängig gemacht und Änderungen lassen sich leicht umsetzen. Seit 2016 gibt es auch Linuxbrew, ein Homebrew-Fork für Linux, welcher seit 2019 fester Bestandteil von Homebrew geworden ist.

Die Installation ist genauso einfach wie die Bedienung:

$ /bin/bash -c "$(curl -fsSL "

Dabei erklärt dir das Skript was es macht und wartet auf deine Eingabe bevor es etwas ausführt.

Ein Paket oder eine Software installiert man folgendermaßen:

$ brew install git

Dabei spielt es keine Rolle, ob das Paket eine kommandozeilenbasierte Software ist oder eine grafische macOS Anwendung:

$ brew install google-chrome

Hierbei wird das erweiternde Projekt Homebrew Cask verwendet. Ob es für eine Software bereits ein Homebrew-Paket oder -Cask gibt lässt sich mittels Suche auf Kommandozeile herausfinden:

$ brew search google
==> Formulae
aws-google-auth                google-go                    google-sql-tool
google-authenticator-libpam    google-java-format           googler      
google-benchmark               google-sparsehash            googletest  
goose 

==> Casks
google-ads-editor              google-japanese-ime
google-analytics-opt-out       google-trends
google-assistant               google-web-designer
google-chat                    googleappengine
google-chat-electron           marshallofsound-google-play-music-player
google-chrome ✔                moefe-google-translate
google-cloud-sdk               homebrew/cask-versions/google-chrome-beta
google-drive                   homebrew/cask-versions/google-chrome-canary
google-drive-file-stream       homebrew/cask-versions/google-chrome-dev
google-earth-pro               homebrew/cask-versions/google-japanese-ime-dev
google-featured-photos

Falls es ein Paket noch nicht geben sollte, kann man es auch selbst erstellen:

$ brew create 
Created /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/bar.rb

oder

$ brew create --cask foo
Editing /usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask/Casks/foo.rb

Alle, über Homebrew installierte, Software aktuell zu halten ist ebenso simpel, wie man es von anderen Unix/Linux Distributionen kennt:

$ brew update && brew upgrade

Das nur einmal für den Anfang.

Ausführliche Dokumentation und Informationen zu diesem Projekt findet man auf der Homepage oder auf Github:

Janina Vogel
Janina Vogel
Assistant Manager Consulting

Janina ist seit Dezember 2018 bei NETWAYS. Zunächst hat sie uns als Consultant unterstützt, seit Ende ihrer Elternzeit im September 2021 arbeitet sie im Bereich der technischen Planung. Besonders gefällt ihr, dass es in der IT nie langweilig wird und man immer wieder neu gefordert ist. Außerhalb der Arbeit geht sie ihrer Leidenschaft fürs Kochen und Backen nach.

Mac: Install binary packages with Cask

Unter Mac OS X sind die Anwendungen ziemlich gut organisiert. Alles ist an einem Fleck und die Vielfalt ist groß. Installiert man sich allerdings viele Anwendungen ohne die Verwendung des App Stores verliert man schnell die Übersicht. Mit Cask wird eine CLI zu Verfügung gestellt, welche genau diese Lücke schließt:
 

$ brew cask search sublime
==> Partial matches
sublime-text	  sublime-text-dev  sublime-text3
$ brew cask install sublime-text3
==> Caveats
Cask sublime-text3 installs files under "/usr/local".  The presence of such
files can cause warnings when running "brew doctor", which is considered
to be a bug in homebrew-cask.
==> Downloading 
######################################################################## 100.0%
==> Symlinking App 'Sublime Text.app' to '/Users/mhein/Applications/Sublime Text.app'
==> Symlinking Binary 'subl' to '/usr/local/bin/subl'
?  sublime-text3 staged at '/opt/homebrew-cask/Caskroom/sublime-text3/Build 3083' (106 files, 26M)
$ ls Applications/ | grep Sublime.*
Sublime Text.app

Okay, das haut jetzt den Geek mit samt seinem Lötkolben nicht unbedingt vom Hocker. Die Anwendung wird in den Benutzer-Application Verzeichnis installiert. Man spart sich allerdings viel Zeit beim aktualisieren und warten: Was ist installiert, in welchen Versionen und kann ich es upgraden.
Cask ist eine Erweiterung von Homebrew und befindet sich auf Github.

Marius Hein
Marius Hein
Head of IT Service Management

Marius Hein ist schon seit 2003 bei NETWAYS. Er hat hier seine Ausbildung zum Fachinformatiker absolviert und viele Jahre in der Softwareentwicklung gearbeitet. Mittlerweile ist er Herr über die interne IT und als Leiter von ITSM zuständig für die technische Schnittmenge der Abteilungen der NETWAYS Gruppe. Wenn er nicht gerade IPv6 IPSec Tunnel bohrt, sitzt er daheim am Schlagzeug und treibt seine Nachbarn in den Wahnsinn.