(debian-policy.info)Automatic handling of configuration files by dpkg


Next: Fully-featured maintainer script configuration handling Up: Configuration file handling from old Packaging Manual
Enter node , (file) or (file)node

17.1 Automatic handling of configuration files by ‘dpkg’
========================================================

A package may contain a control information file called ‘conffiles’.
This file should be a list of filenames of configuration files needing
automatic handling, separated by newlines.  The filenames should be
absolute pathnames, and the files referred to should actually exist in
the package.

When a package is upgraded ‘dpkg’ will process the configuration files
during the configuration stage, shortly before it runs the package’s
‘postinst’ script,

For each file it checks to see whether the version of the file included
in the package is the same as the one that was included in the last
version of the package (the one that is being upgraded from); it also
compares the version currently installed on the system with the one
shipped with the last version.

If neither the user nor the package maintainer has changed the file, it
is left alone.  If one or the other has changed their version, then the
changed version is preferred - i.e., if the user edits their file, but
the package maintainer doesn’t ship a different version, the user’s
changes will stay, silently, but if the maintainer ships a new version
and the user hasn’t edited it the new version will be installed (with an
informative message).  If both have changed their version the user is
prompted about the problem and must resolve the differences themselves.

The comparisons are done by calculating the MD5 message digests of the
files, and storing the MD5 of the file as it was included in the most
recent version of the package.

When a package is installed for the first time ‘dpkg’ will install the
file that comes with it, unless that would mean overwriting a file
already on the file system.

However, note that ‘dpkg’ will `not' replace a conffile that was removed
by the user (or by a script).  This is necessary because with some
programs a missing file produces an effect hard or impossible to achieve
in another way, so that a missing file needs to be kept that way if the
user did it.

Note that a package should `not' modify a ‘dpkg’-handled conffile in its
maintainer scripts.  Doing this will lead to ‘dpkg’ giving the user
confusing and possibly dangerous options for conffile update when the
package is upgraded.


automatically generated by info2www version 1.2.2.9