macworld

Homebrew bringt die Vielfalt von Unix auf den Mac

Anmerkung: Dieser Post erschien ursprünglich im Mein-neuer-Mac-Blog.

Mit einem Mac hat man ein ausgewachsenes Unix-Betriebssystem auf dem Schreibtisch. Das Schöne am Mac OS ist jedoch, dass man davon nichts mitbekommt. Es sei denn, man will. Gerade wenn man eine Linux-Vergangenheit hat, dann kann die Terminal.app (eine Unix-Konsole mit Kommandozeile) eine der Standardanwendungen sein.

Mac OS kommt mit einer Vielzahl vertrauter Unix-Befehle und Programmpakete. So sind Standardkommandos ebenso vorinstalliert wie verschiedene Shells, der Apache-Webserver und die Programmiersprachen Perl, Python, PHP und Ruby.

Viele weitere Unix-Software kann leicht nachinstalliert werden. Dabei stehen sogenannte Paketmanager zur Verfügung, darunter:

Neben diesen Paketmanagern muss jeweils auch das Mac OS Entwicklerkit (SDK) installiert werden, welches jedem neuen Mac beiliegt.

Während MacPorts nach meinem Eindruck der Platzhirsch ist, ist Homebrew ein recht neues Angebot. Die beiden erstgenannten Systeme bauen eine völlig eigene Installationstruktur auf und installieren alle Abhängigkeiten einer Software mit. Im Gegensatz dazu setzt Homebrew auf die im Mac OS vorhandene Softwarebasis und setzt auf diese auf. Wird mit MacPorts z.B. ein
Perl-Modul installiert, so wird auch das Perl-Grundsystem und alle dafür benötigten Programmbibliotheken mit installiert, obwohl es schon zur Mac OS-Grundausstattung gehört. Die Folge ist eine große Zahl von Paketen, die installiert und gepflegt werden muss. Mit Homebrew werden nur die benötigten Perl-Module installiert, das Perl-Grundsystem ist ja schon vorhanden.

Zur Installation von Homebrew ist ein Terminal (unter „Anwendungen > Dienstprogramme > Terminal“) zu öffnen und die Befehlszeile

ruby -e "$(curl -fsSLk https://gist.github.com/raw/323731/install_homebrew.rb)"

auszuführen. es wird das Homebrew-System sowie Xcode (Bestandteil des Mac OS-Entwicklerkits) installiert. Die Details dazu werden im Homebrew-Wiki beschrieben.

Nun hat man den Befehl brew zur Hand und kann damit Pakete suchen und installieren. Ein Programm, welches ich auf fast allen Rechnern installiere, mit denen ich länger zu tun habe, ist der Midnight Commander, ein robuster und vielseitiger Dateimanager für die Unix-Kommandozeile.

Zuerst sucht man nach Schlüsselwörtern, um den Namen des Pakets zu ermitteln.

# brew search mc
libmemcached   mcl    mcrypt        memcached    tomcat mcabber        mcpp   memcache-top  memcachedb   mc

Das Paket könnte also mc heißen. Details zu dem Paket bekommt man mit

# brew info mc
midnight-commander 4.7.4
http://www.midnight-commander.org/
Depends on: pkg-config, glib
/usr/local/Cellar/midnight-commander/4.7.4 (214 files, 5,9M)
http://github.com/mxcl/homebrew/commits/master/Library/Formula/midnight-commander.rb

Das Paket enthält wirklich den gesuchten Midnight Commander. Nun kann es installiert werden.

# sudo brew install mc
==> Downloading http://www.midnight-commander.org/downloads/mc-4.7.4.tar.bz2
##################################################################### 100,0%
==> ./configure ..<ganz viel Argumente>...
==> make install
/usr/local/Cellar/midnight-commander/4.7.4: 214 files, 5,9M, built in 2.5 minutes

Fertig. Dem Kommando brew wird das sudo vorangestellt, wenn man als normaler Benutzer Befehle mit Administratorenrechten ausführen will.

Gelegentlich sollte man die Homebrew-Datenbank aktualisieren. Die Homebrew-Gemeinde ist sehr aktiv beim Entwickeln und Verbessern der Formeln (formulas, so heißen die Bauanleitungen für Pakete) und pflegen schnell aktualisierte Versionen der Pakete ein.

sudo brew update

Als Ergebnis werden alle neuen und aktualisierten Formeln angezeigt. Mit

brew outdated

bekommt man eine Liste aller Pakete, für die Aktualisierungen verfügbar sind. Ein Paket wird durch nochmaliges Aufrufen des Installationsbefehls aktualisiert.

sudo brew install mc

Die Beschreibung der eingebauten Homebrew-Befehle liefert die eingebaute Hilfe mit

brew

oder das Projekt-Wiki.

Autor

Ich bin Softwareentwickler und derzeit vor allem mit PHP und Webanwendungen beschäftigt. Nach 10 Jahren mit Drupal habe ich mich gerade frisch in Laravel verliebt. Jenseits dessen verteilen sich meine digitalen Interessen zwischen Python, diversen Linuxen und macOS.