dpkg
deve avisar e permitir que você veja um diff ( com D ) caso haja alterações feitas nos seus arquivos de configuração:
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]
Atualização: do comentário abaixo, o problema é com pacotes que não soltam arquivos de configuração completos (que é onde o comportamento acima é acionado), mas com arquivos que usam uma abordagem com script para gerar arquivos de configuração. O manual de políticas do Debian descreve isso como:
E.2 Fully-featured maintainer script configuration handling
For files which contain site-specific information such as the hostname and networking details and so forth, it is better to create the file in the package's postinst
script.
This will typically involve examining the state of the rest of the system to determine values and other information, and may involve prompting the user for some information which can't be obtained some other way.
When using this method there are a couple of important issues which should be considered:
If you discover a bug in the program which generates the configuration file, or if the format of the file changes from one version to the next, you will have to arrange for the postinst
script to do something sensible - usually this will mean editing the installed configuration file to remove the problem or change the syntax. You will have to do this very carefully, since the user may have changed the file, perhaps to fix the very problem that your script is trying to deal with - you will have to detect these situations and deal with them correctly.
If you do go down this route it's probably a good idea to make the program that generates the configuration file(s) a separate program in /usr/sbin
, by convention called packageconfig
and then run that if appropriate from the post-installation script. The packageconfig
program should not unquestioningly overwrite an existing configuration - if its mode of operation is geared towards setting up a package for the first time (rather than any arbitrary reconfiguration later) you should have it check whether the configuration already exists, and require a --force
flag to overwrite it.
Isso significa que você precisa contar com o programa packageconfig
, para que o PAM /usr/sbin/pam-auth-update
forneça uma opção de execução a seco ou visualização prévia.
E, até onde eu sei, /usr/sbin/pam-auth-update
não oferece esse recurso.