Michael Koflers Blog
MacPorts und Fink - OpenSource-Software am Mac
Zu populären Open-Source-Programmen wie Firefox, Thunderbird, Gimp oder Emacs gibt es fertig kompilierte Mac-OS-X-Pakete, deren Installation ein Kinderspiel ist. Wie aber installiert man andere Open-Source-Programme, ohne selbst den Compiler anzuwerfen?
MacPorts
MacPorts ist die momentan größte Sammlung von speziell für Mac OS X portierten Open-Source-Quellcode. Teil jedes Pakets (jedes Ports) sind exakte Informationen über alle Abhängigkeiten (d.h., welche anderen Programmen bzw. Bibliotheken vorher installiert werden müssen).
MacPorts ist aber mehr als eine große Software-Datenbank. MacPorts ist auch eine Sammlung von Werkzeugen, die am lokalen Rechner dabei helfen, einzelne Programme (Ports) herunterzuladen, zu kompilieren, zu aktualisieren bzw. bei Bedarf auch wieder zu entfernen. Dabei hilft das zentrale Administrationskommando port. Es muss zumeist mit Administratorrechten (also mit sudo) ausgeführt werden.
Um gleich an dieser Stelle mit einem weit verbreiteten Missverständnis aufzuräumen: MacPorts ist keine Sammlung fertig für Mac OS X kompilierter Programme! Jedes Programm, dass Sie via MacPorts auf Ihrem Rechner installieren, müssen Sie selbst kompilieren. Dabei hilft Kommando port, das Sie in einem Terminal ausführen müssen.
Bevor Sie MacPorts nutzen können, müssen drei Voraussetzungen erfüllt sein (in dieser Reihenfolge):
- X11 muss installiert sein. Bei aktuellen Mac-OS-X-Versionen ist das standardmäßig der Fall.
- Xcode muss installiert sein. Diese Sammlung von Mac-OS-X-Entwicklungswerkzeugen befindet sich auf Ihrer Mac-OS-X-DVD bzw. kann in ihrer aktuellsten Version kostenlos von der Apple-Website heruntergeladen werden.
- MacPorts selbst muss installiert sein. Dazu laden Sie das entsprechende *.dmg-Paket von der Website macports.org herunter und installieren es wie jedes andere Programm, in dem Sie es in das Programmverzeichnis verschieben.
port install name lädt nun den Quellcode des gewünschten Programms herunter, konfiguiert und verändert diesen gemäß den Informationen aus der MacPort-Datenbank und kompiliert und installiert das Programm. Falls das Programm andere Programme oder Bibliotheken voraussetzt, werden diese ebenfalls kompiliert. Der im folgenden Beispiel verwendete Editor joe ist frei von solchen Abhängigkeiten und ist insofern ein guter Startpunkt, um MacPorts testen. Die Installation sollte weniger als eine Minute dauern.
$ sudo ports install joe
Das so installierte Programm können Sie nun im Terminal starten (beispielsweise mit joe dateiname). Das setzt voraus, dass Sie den Programmnamen kennen. Dieser stimmt zumeist (aber nicht immer!) mit dem Port-Namen überein. port trägt das neu kompilierte Programm nicht in das Programmverzeichnis von Mac OS X ein, d. h. ein Start über das Mac-OS-X-Dock ist nicht vorgesehen.
Nicht immer funktioniert die Installation eines neuen Programms so problemfrei wie bei joe. Zum einen kann die Installation komplexer Programme (z.B. Gimp) etliche Stunden dauern, weil vorher unzählige zugrundeliegende Programme und Bibliotheken heruntergeladen und kompiliert werden müssen. Zum anderen sind bei meinen Tests mehrfach Kompilierfehler aufgetreten. Derartige Fehler sind zwar oft schon auf der Website trac.macports.org dokumentiert, das manuelle Einbauen von Patches ist aber sicherlich nicht jedermans Sache.
Fink
Das Fink-Projekt ist eine interessante Alternative zu MacPorts. Die Zielsetzung ist dieselbe: Open-Source-Pakete unkompliziert für Mac OS X zur Verfügung zu stellen. Ein grundlegender Unterschied besteht aber darin, dass Fink Binärpakete anbietet. Sie müssen also keine Programme selbst kompilieren, was eine Menge Zeit sparen kann. Zur Paketverwaltung kommt das von Debian bzw. Ubuntu bekannte Kommando apt get zum Einsatz, was Fink für Linux-Umsteiger besonders attraktiv macht. Allerdings ist die erstmalige Installation von Fink unter Snow Leopard momentan mühsam – es gibt noch kein Installationspaket. Außerdem sind die bei Fink angebotenen Programme bisweilen weniger aktuell als das Angebot bei MacPorts.