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 postinst
Skript 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/sbin
Konvention aufgerufen wird, packageconfig
und dieses dann gegebenenfalls über das Skript nach der Installation auszuführen. Das packageconfig
Programm 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 --force
Flag für erforderlich sein überschreibe es.
Das bedeutet, dass Sie sich packageconfig
fü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-update
bietet eine solche Funktion nicht an.
/etc/pam.d
ohne die Warnung oben in der Datei zu bemerken. Stattdessen sollte eine Datei hinzugefügt und/usr/share/pam-configs
anschließend ausgeführt werdenpam-auth-update
, um Dateien in zu generieren/etc/pam.d
.