WAS IST DAS DARWIN PORTS SYSTEM DarwinPorts ist eine Infrastruktur zum Kompilieren, Installieren und Paketisieren von Software, entwickelt, um die gleiche Funktionalitaet wie das FreeBSD Ports-System zu bieten und gleichzeitig erweiterbar zu bleiben. DarwinPorts laeuft zur Zeit auf MacOS X 10.2 (Darwin 6.0) und MacOS X 10.3, ist aber auf Portierbarkeit ausgelegt. Implementiert ist DarwinPorts in TCL mit einigen TCL-Erweiterungen, die in C geschrieben sind. Der "DarwinPorts User Guide" ist online verfuegbar unter der Adresse: http://www.opendarwin.org/projects/darwinports/guide/ In base/doc/INTERNALS ist eine detaillierte Beschreibung der Architektur zu finden. DarwinPorts ist in zwei Bestandteile aufgeteilt. Die "DarwinPorts Infrastruktur", die im Unterverzeichniss base/ liegt, und das "dports/"-Verzeichniss, welches die Metadaten zu der verfuegbaren, portierten Software enthaelt. INSTALLATION Die Datei base/doc/README.platforms enthaelt plattform-spezifische Hinweise zur Installation von DarwinPorts auf nicht Darwin-basierten Betriebsystemen. Installations-Schritte: 1. cd base/ ./configure In das base/ Verzeichniss wechseln und das ./configure Skript aufrufen. Optional koennen dem configure-Skript Parameter mitgeben (siehe unten) 2. make 'make' aufrufen, um die DarwinPorts Infrastruktur zu kompilieren. Um 3. sudo make install 'sudo make install' aufrufen, um die in Schritt 1 kompilierte Infrastruktur 4. [optional] /etc/ports/ports.conf editieren Die Haupt-Konfigurationsdatei fuer DarwinPorts heisst 'ports.conf' und liegt im Verzeichniss '/etc/ports'. In der Konfigurationsdatei ist festgelegt, unterhalb welchem Verzeichnisses (Prefix) Software aus den DarwinPorts installiert wird und wo DarwinPorts-spezifische Daten gespeichert werden: portdbpath - legt fest wo DarwinPorts-spezifische Daten gespeichert werden. prefix - legt das Verzeichniss fest, wo DarwinPorts-Software installiert wird. 5. [optional] /etc/ports/sources.conf editieren In der Datei '/etc/ports/sources.conf' wird angegeben, wo das 'dports/'-Verzeichniss liegt. Dieses muss angepasst werden, damit das DarwinPorts System benutzt werden kann! Falls das Argument --with-dports-dir=DIR beim Aufrufen des ./configure-Skript angegeben wurde, wurde dies Verzeichniss der sources.conf hinzugefuegt, ansonsten wurde das default-Verzeichniss (darwinports/dports innerhalb des Installations Verzeichnisses) hinzugefuegt. Die DarwinPorts Infrastruktur wird an folgenden Stellen installiert: [Mac OS X 10.2] /System/Library/Tcl/darwinports1.0 [Mac OS X 10.3] /Library/Tcl/darwinports1.0 [FreeBSD] /usr/local/lib/tcl8.3/darwinports1.0 - TCL Bibliothek zum Zugriff auf das DarwinPorts System. PREFIX ist per default auf '/opt/local' gesetzt, kann aber durch das Wechseln in das base/-Verzeichnis und einem anschliessendem, manuellen Aufruf des ./configure- Skriptes, bei dem das '--prefix'-Argument angegeben wird, veraendert werden. Folgende Komponenten werden im PREFIX installiert: $PREFIX/bin/port - Kommandozeilen Utility zum Managen von DarwinPorts. $PREFIX/share/darwinports/ - interne TCL Bibliotheken fuer das DarwinPorts System. DAS PORT KOMMANDO BENUTZEN Falls noch nicht geschehen, sollte /opt/local/bin der 'path'-Variablen hinzugefuegt werden (oder $PREFIX/bin, falls das Prefix explizit bei der Installation angegeben wurde). Falls Jaguar (OS X 10.2) verwendet wird, folgende Zeile der Datei '~/.cshrc' hinzufuegen (gilt fuer alle (t)csh Benutzer): set path=($path /opt/local/bin) Falls Panther (OS X 10.3) verwendet wird, folgende Zeile der Datei '~/.profile' hinzufuegen (gilt fuer alle sh/bash Benutzer): export PATH=$PATH:/opt/local/bin Aenderungen an der ~/.cshrc werden erst beim Starten einer neuen Shell beruecksichtigt. Folgendes Kommando kompiliert und installiert einen Port: port install Um einen bestimmen Port zu finden, kann man 'port search' verwenden: port search vi Die Man-Page des 'port'-Kommandos listet alle verfuegbaren Befehle auf. Desweiteren ist es moeglich, Aktionen (z.B. kompilieren oder herunterladen) fuer alle vorhandenen Ports mittels des 'portall'-Kommandos auszufuehren. Das 'portall'-Kommando verarbeitet alle Aktionen wie das 'port'-Kommando, mit dem Unterschied, dass es iterativ alle ports im dports/-Verzeichniss abarbeitet. ERSTELLEN VON NEUEN PORTS Ports bestehen aus einem Verzeichniss mit einem 'Portfile' und dazugehoerigen Dateien. Zur Zeit sind die einzigen Dateien, ausser dem 'Portfile', Patches. Ein Portfile besteht auf gueltigem TCL, interpretiert von einem TCL-Interpreter, der vom DarwinPorts-System gestartet wird. Portfiles benutzen eine key/value Syntax, geben dem Portfile-Autor aber gleichzeitig die kompletten Moeglichkeiten von TCL. Einen guten Einstieg in das Erstellen von Ports gibt die Man-Page portfile(7), base/doc/exampleport und http://ww.opendarwin.org/projects/darwinports/en/portfileHOWTO.php.