dpkg sollte Sie auffordern und Ihnen erlauben, einen Unterschied (mit D) zu sehen, falls Änderungen an Ihren Konfigurationsdateien vorgenommen werden:
Configuration file `/etc/bash.bashrc'
==> Modified (by you or by a script) since installation.
==> Package distributor has shipped an updated version.
What would you like to do about it ? Your options are:
Y or I : install the package maintainer's version
N or O : keep your currently-installed version
D : show the differences between the versions
Z : start a shell to examine the situation
The default action is to keep your current version.
*** bash.bashrc (Y/I/N/O/D/Z) [default=N]
Update: Aus dem Kommentar unten geht hervor, dass das Problem bei Paketen liegt, bei denen keine vollständigen Konfigurationsdateien abgelegt werden (wo das obige Verhalten ausgelöst wird), sondern bei Dateien, die einen Skriptansatz zum Generieren von Konfigurationsdateien verwenden. Das Debian-Richtlinienhandbuch beschreibt dies wie folgt :
E.2 Vollständige Handhabung der Konfiguration des Betreuerskripts
Für Dateien, die standortspezifische Informationen wie den Hostnamen, Netzwerkdetails usw. enthalten, ist es besser , die Datei im postinstSkript des Pakets zu erstellen .
Dies beinhaltet normalerweise das Untersuchen des Zustands des restlichen Systems, um Werte und andere Informationen zu bestimmen, und kann das Auffordern des Benutzers zur Eingabe einiger Informationen beinhalten, die auf andere Weise nicht erhalten werden können.
Bei der Verwendung dieser Methode sind einige wichtige Punkte zu beachten:
Wenn Sie einen Fehler im Programm entdecken, der die Konfigurationsdatei generiert, oder wenn sich das Format der Datei von einer Version zur nächsten ändert, müssen Sie dies arrangieren postinst Skript etwas Sinnvolles tut - normalerweise bedeutet dies das Bearbeiten der installierten Konfiguration Datei, um das Problem zu beheben oder die Syntax zu ändern. Sie müssen dies sehr sorgfältig tun, da der Benutzer möglicherweise die Datei geändert hat, um möglicherweise genau das Problem zu beheben, mit dem sich Ihr Skript befasst. Sie müssen diese Situationen erkennen und korrekt behandeln.
Wenn Sie diesen Weg gehen, ist es wahrscheinlich eine gute Idee, das Programm, das die Konfigurationsdatei (en) generiert, in ein separates Programm zu verwandeln, das gemäß der /usr/sbinKonvention aufgerufen wird, packageconfigund dieses dann gegebenenfalls über das Skript nach der Installation auszuführen. Das packageconfigProgramm sollte eine vorhandene Konfiguration nicht ohne Frage überschreiben. Wenn seine Funktionsweise darauf ausgerichtet ist, ein Paket zum ersten Mal einzurichten (und nicht auf eine spätere willkürliche Neukonfiguration), sollte es überprüfen, ob die Konfiguration bereits vorhanden ist, und ein --forceFlag für erforderlich sein überschreibe es.
Das bedeutet, dass Sie sich packageconfigfür PAM auf das Programm verlassen müssen /usr/sbin/pam-auth-update, um eine Trockenlauf- oder Vorschauoption bereitzustellen.
Und soweit ich das beurteilen kann, /usr/sbin/pam-auth-updatebietet eine solche Funktion nicht an.
/etc/pam.dohne die Warnung oben in der Datei zu bemerken. Stattdessen sollte eine Datei hinzugefügt und/usr/share/pam-configsanschließend ausgeführt werdenpam-auth-update, um Dateien in zu generieren/etc/pam.d.