control
-Datei kann das control.tar.gz
-Archiv jeden Debian-Pakets eine Anzahl von Skripten enthalten, die von dpkg
in verschiedenen Phasen der Paketverarbeitung aufgerufen werden. Die Debian-Richtlinien beschreiben ausführlich die möglichen Fälle mit Benennung der aufgerufenen Skripte und der Parameter, die sie entgegennehmen. Diese Abläufe können kompliziert sein, da dpkg
im Falle des Scheiterns eines Skripts versucht, zu einem zufriedenstellenden Zustand zurückzukehren, indem es die Installation oder die gerade stattfindende Entfernung (insofern möglich) abbricht.
preinst
vor der Installation eines Pakets ausgeführt, postinst
danach. In gleicher Weise wird prerm
vor dem Entfernen eines Pakets aufgerufen und postrm
danach. Die Aktualisierung eines Pakets ist gleichbedeutend mit dem Entfernen der vorhergehenden Version und einer Installation der neuen. Alle möglichen Szenarien können hier nicht ausführlich beschrieben werden, aber wir werden die zwei häufigsten erörtern: eine Installation/Aktualisierung und ein Entfernen.
dpkg
das Skript old-prerm upgrade neue-version
auf.
dpkg
dann new-preinst upgradealte-version
aus; bei einer erstmaligen Installation führt es stattdessen new-preinst install
aus. Möglicherweise fügt es im letzten Parameter die alte Version hinzu, falls das Paket früher schon einmal installiert war und seither entfernt wurde (aber nicht vollständig gelöscht, da die Konfigurationsdateien noch zurückbehalten wurden).
dpkg
das Skript old-postrm upgrade neue-version
aus.
dpkg
aktualisiert alle internen Daten (Dateiliste, Konfigurationsskripte usw.) und entfernt die Sicherheitskopien der ersetzten Dateien. Dies ist der Punkt, an dem es kein Zurück mehr gibt: dpkg
hat keinen Zugang zu all den Elementen mehr, die für eine Rückkehr zum vorherigen Zustand erforderlich wären.
dpkg
aktualisiert dann die Konfigurationsdateien, wobei es den Nutzer auffordert, Entscheidungen zu treffen, falls es diese Aufgabe nicht selbsttätig erledigen kann. Die Einzelheiten dieses Vorgangs sind in Abschnitt 5.2.3, „Checksummen, Liste der Konfigurationsdateien“ erläutert.
dpkg
das Paket, indem es new-postinst configure vorherige-konfigurierte-version
ausführt.