Inhaltsverzeichnis
Die Überarbeitung dieser Anleitung mit aktualisierten Inhalten und weiteren praktischen Beispielen ist unter Guide for Debian Maintainers verfügbar. Bitte verwenden Sie diese neue Anleitung als primäre Anleitung.
Es gibt einige Techniken, die Sie zum Überprüfen eines Pakets auf Fehler vor dem Upload in das öffentliche Archiv wissen sollten.
Es empfiehlt sich auch, das Testen auf einem von Ihrer Maschine verschiedenen Rechner durchzuführen. Sie müssen genau auf alle Warnungen und Fehler für alle hier beschriebenen Tests achten.
Falls Sie nach dem Bau Ihres nicht nativen Debian-Pakets im Format
3.0 (quilt)
einen neuen, automatisch erstellen Patch wie
debian-changes-*
im Verzeichnis
debian/patches
finden, besteht die Möglichkeit, dass
Sie Dateien versehentlich geändert haben oder das Bauskript die Quellen der
Originalautoren verändert hat. Falls es Ihr Fehler ist, korrigieren Sie
ihn. Falls er vom Bauskript ausgelöst wurde, korrigieren Sie das
dahinterliegende Problem mit dh-autoreconf wie in Abschnitt 4.4.3, „Anpassungen der Datei rules
“ oder umgehen Sie das Problem mit
source/options
wie in Abschnitt 5.24, „source/local-options
“.
Sie müssen überprüfen, ob Ihr Paket ohne Probleme installiert werden kann. Der Befehl debi(1) hilft Ihnen bei der Testinstallation aller erstellten Binärpakete.
$ sudo debi gentoo_0.9.12-1_i386.changes
Um Installationsprobleme auf verschiedenen Systemen zu vermeiden, müssen Sie
sicherstellen, dass es keine Dateinamenskonflikte mit anderen existierenden
Paketen gibt, wobei Sie die vom Debian-Archiv heruntergeladene Datei
Contents-
verwenden. Der
Befehl apt-file kann für diese Aufgabe praktisch
sein. Falls es Kollisionen gibt, kümmern Sie sich um dieses echte Problem,
indem Sie die Datei umbenennen, eine gemeinsame Datei in ein separates Paket
verschieben, von dem verschiedene Pakete abhängen können, in Absprache mit
den Betreuern anderer betroffener Pakete den Alternatives-Mechanismus nutzen
(siehe update-alternatives(1)) oder indem Sie eine
i386
Conflicts
-Beziehung in der Datei
debian/control
festlegen.
Alle Betreuerskripte (das heißt, die Dateien preinst
,
prerm
, postinst
und
postrm
) sind schwer korrekt zu schreiben, falls Sie
nicht vom Programm debhelper
automatisch erstellt werden. Verwenden Sie sie daher als neuer Betreuer
nicht (siehe Abschnitt 5.18, „{post|pre}{inst|rm}
“).
Falls das Paket nicht triviale Betreuerskripte verwendet, testen Sie nicht nur die Installation, sondern auch das Entfernen, das vollständige Entfernen und den Upgrade-Prozess. Viele Betreuerskriptfehler zeigen sich, wenn Pakete entfernt oder endgültig entfernt werden. Verwenden Sie für die Tests den Befehl dpkg wie folgt:
$ sudo dpkg -r gentoo $ sudo dpkg -P gentoo $ sudo dpkg -i gentoo_Version
-Revision
_i386
.deb
Dies sollte in einem Ablauf wie dem Folgenden passieren:
Installieren Sie die vorhergehende Version (falls notwendig)
Führen Sie ein Upgrade von der vorhergehenden Version durch
Führen Sie ein Downgrade auf eine vorherige Version durch (optional)
Entfernen Sie es vollständig
Installieren Sie das neue Paket
Entfernen Sie es
Installieren Sie es wieder
Entfernen Sie es vollständig
Falls dies Ihr erstes Paket ist, sollten Sie ein Pseudo-Paket mit einer anderen Version erstellen, um Ihr Paket vorab zu testen und zukünftige Probleme zu vermeiden.
Behalten Sie im Hinterkopf, dass die Benutzer ein Upgrade von der Version, die in der letzten Debian-Veröffentlichung enthalten war, durchführen werden, falls es schon mal veröffentlicht wurde. Denken Sie daran, auch Upgrades von dieser Version zu prüfen.
Obwohl ein Downgrade offiziell nicht unterstützt wird, ist es eine nette Geste, dies dennoch zu unterstützen.
Führen Sie lintian(1) mit Ihrer Datei
.changes
aus. Der Befehl lintian
führt viele Skripte aus, um auf typische Paketierungsfehler zu
prüfen. [75]
$ lintian -i -I --show-overrides gentoo_0.9.12-1_i386.changes
Selbstverständlich müssen Sie den Dateinamen mit dem Namen der Datei
.changes
, die für Ihr Paket erstellt wurde,
ersetzen. Die Ausgabe des Befehls lintian verwendet die
folgenden Schalter:
E:
für Fehler; eine definitive Verletzung der Richtlinien
oder ein Paketierungsfehler.
W:
für Warnungen; eine mögliche Verletzung der
Richtlinien oder ein möglicher Paketierungsfehler.
I:
für Information; Informationen über bestimmte Aspekte
der Paketierung.
N:
für Hinweis; eine detaillierte Meldung, um bei der
Fehlersuche zu helfen.
O:
für »außer Kraft gesetzt«; eine Meldung, die durch
Dateien lintian-overrides
außer Kraft gesetzt, von der
Option --show-overrides
aber angezeigt wurde.
Wenn Sie Warnungen sehen, passen Sie Ihr Paket an, um diese zu vermeiden
oder stellen Sie sicher, dass die Warnungen unberechtigt sind. Falls sie
unberechtigt sind, legen Sie lintian-overrides
-Dateien
wie in Abschnitt 5.14, „{
“ beschrieben an.
Paket
.|source/}lintian-overrides
Beachten Sie, dass Sie das Paket mit dpkg-buildpackage bauen und lintian in einem Befehl darauf anwenden können, falls Sie debuild(1) oder pdebuild(1) verwenden.
Sie können Dateien im binären Debian-Paket mit dem Befehl debc(1) auflisten.
$ debc package
.changes
Sie können Dateiinhalte in zwei Debian-Quellpaketen mit dem Befehl debdiff(1) vergleichen.
$ debdiffaltes-Paket
.dscneues-Paket
.dsc
Sie können Dateilisten in zwei Gruppen von binären Debian-Paketen mit dem Befehl debdiff(1) vergleichen.
$ debdiffaltes-Paket
.changesneues-Paket
.changes
Sie sind nützlich, um zu identifizieren, wass in den Quellpaketen geändert wurde und auf unbeabsichtigte Änderungen beim Aktualisieren der Binärpakete zu prüfen, wie versehentlich fehlplatzierte oder entfernte Dateien.
Sie können zwei diff.gz
-Dateien mit dem Befehl
interdiff(1) vergleichen. Dies ist zur
Überprüfung, dass keine unbeabsichtigten Änderungen beim Aktualisieren von
Paketen im alten 1.0
-Quellformat durch den Betreuer an
den Quellen vorgenommen wurden, nützlich.
$ interdiff -zaltes-Paket
.diff.gzneues-Paket
.diff.gz
Das neue Quellformat 3.0
speichert Änderungen in mehreren
Patch-Dateien, wie in Abschnitt 5.25, „patches/*
“ beschrieben. Sie können die
Änderungen jeder debian/patches/*
-Datei auch mit
interdiff nachverfolgen.
Viele dieser Dateiüberprüfungsoperationen können in einen intuitiven Prozess
mit einem Dateimanager wie mc(1) verwandelt werden. Er ermöglicht es
Ihnen, nicht nur die Inhalte eines *.deb
-Pakets
anzuschauen, sondern auch die von *.udeb
,
*.debian.tar.gz
, *.diff.gz
und
*.orig.tar.gz
-Dateien.
Schauen Sie nach zusätzlichen, nicht benötigten Dateien oder solchen der
Länge 0, sowohl im binären als auch im Quellpaket. Oft werden
(Programm-)Reste nicht korrekt bereinigt; passen Sie Ihre Datei
rules
an, um dies zu ermöglichen.
[75] Sie müssen die Option -i -I --show-overrides
von
lintian angeben, falls Sie
/etc/devscripts.conf
oder
~/.devscripts
wie in Abschnitt 6.3, „Der Befehl debuild“
beschrieben angepasst haben.