Das FreeBSD Porter-Handbuch
Zurück | Kapitel 7. Fortgeschrittene `pkg-plist`-Methoden | Weiter

# 7.5. Automatisiertes Erstellen von Paketlisten

Als Erstes sollten Sie sich vergewissern, dass der Port bis auf `pkg-plist` vollständig ist.

Als Nächstes erstellen Sie einen temporären Verzeichnisbaum, in welchem Ihr Port installiert werden kann, und installieren Sie alle Abhängigkeiten.

    # mkdir /var/tmp/`make -V PORTNAME`
    # mtree -U -f `make -V MTREE_FILE` -d -e -p /var/tmp/`make -V PORTNAME`
    # make depends PREFIX=/var/tmp/`make -V PORTNAME`

Speichern Sie die Verzeichnisstruktur in einer neuen Datei.

    # (cd /var/tmp/`make -V PORTNAME` && find -d * -type d) | sort > OLD-DIRS

Erstellen Sie eine leere `pkg-plist`-Datei:

    # :>pkg-plist

Wenn Ihr Port auf `PREFIX` achtet (was er machen sollte), so kann der Port nun installiert und die Paketliste erstellt werden.

    # make install PREFIX=/var/tmp/`make -V PORTNAME`
    # (cd /var/tmp/`make -V PORTNAME` && find -d * \! -type d) | sort > pkg-plist

Sie müssen auch alle neu erstellten Verzeichnisse in die Paketliste aufnehmen.

    # (cd /var/tmp/`make -V PORTNAME` && find -d * -type d) | sort | comm -13 OLD-DIRS - | sort -r | sed -e 's#^#@dirrm #' >> pkg-plist

Zu guter Letzt muss die Paketliste noch manuell aufgeräumt werden - es funktioniert eben nicht alles automatisch. Manualpages sollten im `Makefile` des Ports unter `MAN`n`` aufgeführt sein und nicht in der Paketliste. Konfigurationsdateien des Benutzers sollten entfernt oder als ``filename`.sample` installiert werden. Die `info/dir`-Datei sollte nicht aufgeführt sein und die zugehörigen `install-info`-Zeilen sollten hinzugefügt werden, wie im info files-Abschnitt beschrieben. Alle Bibliotheken, die der Port installiert, sollten aufgelistet werden, wie es im Shared Libraries-Abschnitt festgelegt ist.

Alternativ dazu können Sie das `plist`-Skript in `/usr/ports/Tools/scripts/` verwenden, um die Paketliste automatisch zu erstellen. Das `plist`-Skript ist ein Ruby-Skript, das die meisten der in den vorangehenden Absätzen kurz dargestellten manuellen Schritte automatisiert.

Der erste Schritt ist derselbe wie oben: Nehmen Sie die ersten drei Zeilen, also `mkdir`, `mtree` und `make depends`. Installieren und bauen Sie dann den Port:

    # make install PREFIX=/var/tmp/`make -V PORTNAME`

Und lassen Sie `plist` die `pkg-plist`-Datei erstellen:

    # /usr/ports/Tools/scripts/plist -Md -m `make -V MTREE_FILE` /var/tmp/`make -V PORTNAME` > pkg-plist

Die Paketliste muss immer noch von Hand aufgeräumt werden, wie es oben erklärt wurde.

Ein weiteres Werkzeug zur Erzeugung einer ersten `pkg-plist`-Datei ist `ports-mgmt/genplist`. Wie bei jedem automatisierten Hilfswerkzeug, sollte die erzeugte `pkg-plist`-Datei überprüft und bei Bedarf von Hand nachbearbeitet werden.

Zurück | Zum Anfang | Weiter
Dynamische oder statische Paketliste | Nach oben | Die `pkg-`*`` Dateien

Fragen zum FreeBSD Ports-System richten Sie bitte an <ports@FreeBSD.org>, Fragen zu diesem Dokument hingegen an <de-bsd-translators@de.FreeBSD.org>.