Product SiteDocumentation Site

5.2.2. Konfigurationsskripte

Zusätzlich zur 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.
Im Allgemeinen wird das Skript 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.

5.2.2.1. Installation und Aktualisierung

Folgendes geschieht während einer Installation (oder einer Aktualisierung):
  1. Für eine Aktualisierung ruft dpkg das Skript old-prerm upgrade neue-version auf.
  2. Ebenfalls für eine Aktualisierung führt 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).
  3. Die neuen Paketdateien werden dann entpackt. Falls eine Datei bereits vorhanden ist, wird sie ersetzt, wobei aber vorübergehend eine Sicherheitskopie erstellt wird.
  4. Für eine Aktualisierung führt dpkg das Skript old-postrm upgrade neue-version aus.
  5. 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.
  6. 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.
  7. Schließlich konfiguriert dpkg das Paket, indem es new-postinst configure vorherige-konfigurierte-version ausführt.