[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

conffile-Handling (was: none)



Markus Meyer <mm@butterblume.org> wrote:

> Jep, hast recht. Ich hab mich nochmal schalu gemacht. Existiert eine
> Datei "conffiles" in control.tar.gz, dann fragt es für jede Datei, die
> in "conffiles" steht, nach, ob sie überschrieben werden soll,

ja

> sollten
> sie unterschiedlich sein. Aber leider steht in den Debian Developer
> Dokus und in den man-Pages zu den "debconf" 

Mit debconf hat das *nichts* zu tun; wenn mit debconf-Hilfe Dateien in
/etc/ angepasst werden, dann sind das gerade keine conffiles, sondern
"sonstige configuration files", und dpkg kümmert sich nicht um sie.

> und Co nicht drin, womit die
> testen, ob sich die Dateien unterscheiden. Aber ich tippe da auch auf
> "diff".

Du tipps falsch, es wird md5sum verwendet.  dpkg speichert die md5sum
der Datei, wie sie zuvor mit dem Paket mitkam, in /var/lib/dpkg/status.
Beim Installieren einer neuen Version macht es für jede Datei, die im
neuen Paket als conffile markiert ist, folgendes:

Existiert die Datei im Dateisystem?

1. Nein: Existiert eine md5sum, war sie also im alten Paket?

1.1 Nein: Neue Datei, installiere neue Version

1.2 Ja: Benutzer hat Datei gelöscht.  Ist force-confnew gesetzt?
  1.2.1: Nein: nächste Datei bearbeiten
  1.2.2: Ja: Neue Datei installieren
  
2 Ja: Datei existiert.  Ist die md5sum noch die gleiche wie
gespeichert?

2.1: Nein: Vom Benutzer geändert.  Ist die md5sum der Datei im neuen
     Paket die gleiche wie gespeichert?
     2.1.1 Nein: Datei geändert, es gibt drei Versionen:
           ==> FRAGE
     2.1.2 Ja: Datei im Paket unverändert, vom Benutzer geänderte
           beibehalten und nächste Datei bearbeiten.

2.2: Ja: Unveränderte Datei, nächste Datei bearbeiten.

Bei FRAGE wird nun ein diff zwischen existierender und neuer Datei
gezeigt, denn von der alten gibt es keine Kopie mehr.  

Dateien, die nicht als conffile markiert sind, müssen von den
maintainer-Skripten analog behandelt werden, so dass Änderungen erhalten
bleiben.  Ein Tool dafür ist ucf, es kann optional auch eine Kopie der
unveränderten Datei speichern und im Fall 2.1.1 ein three-way-diff
anzeigen. 

Gruß, Frank
-- 
Frank Küster
Inst. f. Biochemie der Univ. Zürich
Debian Developer



Reply to: