Fink

Packaging Tutorial - 1. Der Anfang

1.1 Grundlagen

Beachten sie: In diesem Dokument wird davon ausgegangen, dass fink im Verzeichnis /opt/sw installiert ist, entsprechend der Voreinstellungen. Ein Block mit Code wie dieser

finkdev% somecommand

bedeutet, dass sie das Kommando somecommand in einem Fenster von Terminal.app oder einem anderen Terminalprogramm ihres Macs eingeben müssen.

Zuerst müssen sie einige grundlegende Konzepte über das Erstellen von Fink-Paketen verstehen. Wir schlagen folgendes vor:

1.2 Paket erstellen

Speichern sie ihre info-Datei (falls benötigt auch die patch-Datei) im Verzeichnis /opt/sw/fink/dists/local/main/finkinfo/. Der Name der Datei sollte paketname.info sein (und paketname.patch). paketname ist der Name ihres Pakets. Existiert das Verzeichnis nicht, müssen sie es erzeugen. Paketname sollte klein geschrieben sein.

Beachten sie bitte: Versichern sie sich, dass fink aktuell ist, indem sie folgende Kommandos ausführen:

finkdev% fink selfupdate

Danach:

finkdev% fink configure

Setzen sie dabei die Ausführlichkeits-Stufe auf den höchsten Wert. Aktivieren sie Mac OS X - Versionen bis 10.6 den unstable Baum. Danach sollten sie mit dem folgenden Kommando überprüfen, ob fink ihr Paket findet:

finkdev% fink list paketname

Sollte ihr Paket nicht aufgeführt werden, müssen sie die Konfigurationsdatei von Fink ergänzen, so dass ihr lokaler Baum berücksichtigt wird.

Vielleicht müssen sie auch den Index der Pakete mit folgendem Kommando aktualisieren:

finkdev% fink index

Benötigen sie mehr Details, schauen sie bitte in der Anleitung für die Paketerstellung nach oder nutzen sie eine der folgenden Hilfequellen. Sie sollten auch die fink-devel Mailing-Liste abonnieren.

1.3 Validieren sie ihr Paket

Während der Validierung sollten sie die Ausführlichkeits-Stufe von fink auf den höchsten Wert setzen. Schauen sie im Abschnitt Konfigurationsdatei von Fink nach, wie man die Ausführlichkeits-Stufe verändert.

Überprüfen sie mit folgendem Kommando, ob ihr Paket validiert werden kann:

finkdev% fink validate /opt/sw/fink/dists/local/main/finkinfo/paketname.info

Ist ihr Paket validiert, versuchen sie es mit diesem Kommando zu erstellen:

finkdev% fink -m --build-as-nobody rebuild paketname

Durchsuchen sie die Ausgabe des Prozesses sorgfältig nach Fehlern und Warnungen. Achten sie insbesondere darauf, dass alles in das richtige Zielverzeichnis installiert wird, nämlich /opt/sw/src/root-paketname-%v-%r/opt/sw. Von dort erstellt fink das binäre Paket. Nichts darf direkt in das Verzeichnis /opt/sw installiert werden.

Mit der fink-Option --keep-build-dir oder -k wird das Verzeichnis, in dem das Paket erstellt wurde, nicht gelöscht, sondern bleibt erhalten. Hierhin hat fink den Quelltext entpackt und das Paket erstellt. Dies kann dabei helfen, Fehler bei der Erstellung zu beheben. Geben sie das Kommando man fink für weitere Details ein.

Mit der fink-Option --keep-root-dir or -K wird auch das Zielverzeichnis nicht gelöscht, sondern bleibt erhalten. hier erstellt fink den Installations-Baum des Pakets. Fehler während der Installation kommt man oft durch einen Vergleich des Verzeichnisses für das Erstellen und dem Zielverzeichnis auf die Spur.

Wird das Paket erfolgreich erstellt, überprüfen sie das Binärpaket mit folgendem Kommando:

finkdev% dpkg -c /opt/sw/fink/dists/local/main/binary-darwin-powerpc/paketname.deb

Überprüfen sie, dass alle Dateien auch tatsächlich in der .deb Datei sind. Ein weiteres Mal: Nichts darf direkt in das Verezichnis /opt/sw installiert werden.

Jetzt kann man auch das binäre Paket mit diesem Kommando validieren:

finkdev% fink validate /opt/sw/fink/dists/local/main/binary-darwin-powerpc/paketname.deb

Ist alles in Ordnung, können sie das Paket installieren

finkdev% fink install paketname

und die Funktionalität ihres Paket überprüfen.

Klappt einer der Schritte nicht, versuchen sie, den Fehler zu beheben und beginnen sie noch einmal von vorne mit dem Schritt fink validate.

1.4 Paket einreichen

Hat ihr Paket alle überprüfungen überstanden, können sie ihre info-Datei (falls benötigt auch die patch-Datei) im Package Submission Tracker einreichen.

Einer der Paket-Reviewer wird sich ihr Paket anschauen und es zu dem entsprechenden Paket-Baum hinzufügen (bis 10.6: unstable-Baum), wenn er es als in Ordnung einschätzt. Falls nicht, werden sie gebeten, das Paket Fehler zu beheben und es in Einklang mit der Paket-Politik zu bringen.

Wichtig:

Weiter: 2. Beispiel - das Maxwell Paket