Dec 14

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.

7 Antworten to “Homebrew bringt die Vielfalt von Unix auf den Mac”

  1. Kelloggs sagt:

    Schöner Einstieg für Brew-Einsteiger.

    Ergänzen sollte man evtl. noch

    “brew upgrade”

    Um auf einen Schlag alle Pakete zu aktualisieren, für die Aktualisierungen verfügbar sind.

  2. Holger sagt:

    Das Script selbst installiert nicht XCode. Das muss der User selbst erledigen (was das Script am Ende auch so ausgibt).

    Außerdem sollten die brew-Kommandos nicht mit sudo ausgeführt werden. /usr/local ist für alle Benutzer in der staff-Gruppe (also alle Administrator-User) beschreibbar. So müssen die Programme nicht mit Root kompiliert werden und können einfacher verwaltet werden.

  3. dirkr sagt:

    @Kelloggs: Danke, ich habe auch schon bemerkt, dass man ständig dazu lernt. :) Hängt wohl damit zusammen, dass sich homebrew in der aktiven Entwicklung befindet. Ich persönlich bevorzuge allerdings das selektive Aktualisieren, also nur die Pakete, von denen ich eine neue Version möchte. Geschmackssache…

  4. dirkr sagt:

    @Holger: OK. Ich hatte Xcode bereits vor meinem Erstkontakt mit homebrew installiert und die Beschreibung im Wiki falsch übersetzt. Danke für die Richtigstellung.

    Zu Sudo: Ich selbst habe als normaler Nutzer keine Admin-Rechte. Bei mir (Mac OS 10.6) ist “wheel” die Administratorengruppe, die Schreibrechte auf /usr/local hat. Zu der gehöre ich aber nicht.

    # brew install mutt Error: Cannot write to /usr/local/Cellar

    Für mich ist “Benutzer ohne Admin-Rechte” und “sudo” gute Praxis.

  5. RAUL-Networx sagt:

    Sehr schön gestalterter Blog! Super für Brew Einstseiger und auch sehr gut verständlich.

    Weiter so!

  6. Homebrew bringt die Vielfalt von Unix auf den Mac | niebegeg.net sagt:

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

  7. Kai Ravn sagt:

    Guter Artikel. Allerdings raet die Homebrew Crew von der Verwendung von ‘sudo’ ab. siehe -> https://github.com/mxcl/homebrew/wiki/FAQ

Antworten auf diesen Artikel