2.2. Package control information files
The control information portion of a binary package is a collection of files with names known to dpkg
. It will treat the contents of these files specially - some of them contain information used by dpkg
when installing or removing the package; others are scripts which the package maintainer wants dpkg
to run.
It is possible to put other files in the package control information file area, but this is not generally a good idea (though they will largely be ignored).
Here is a brief list of the control information files supported by dpkg
and a summary of what they’re used for.
control
This is the key description file used by dpkg
. It specifies the package’s name and version, gives its description for the user, states its relationships with other packages, and so forth. See Source package control files – debian/control and Binary package control files – DEBIAN/control.
It is usually generated automatically from information in the source package by the dpkg-gencontrol
program, and with assistance from dpkg-shlibdeps
. See Source packages (from old Packaging Manual).
postinst
, preinst
, postrm
, prerm
These are executable files (usually scripts) which dpkg
runs during installation, upgrade and removal of packages. They allow the package to deal with matters which are particular to that package or require more complicated processing than that provided by dpkg
. Details of when and how they are called are in Package maintainer scripts and installation procedure.
It is very important to make these scripts idempotent. See Maintainer scripts idempotency.
The maintainer scripts are not guaranteed to run with a controlling terminal and may not be able to interact with the user. See Controlling terminal for maintainer scripts.
conffiles
This file contains a list of configuration files which
are to be handled automatically by dpkg
(see Configuration file handling (from old Packaging Manual)). Note that not necessarily every configuration file should be listed here.
shlibs
This file contains a list of the shared libraries supplied by the package, with dependency details for each. This is used by dpkg-shlibdeps
when it determines what dependencies are required in a package control file. The shlibs
file format is described on The shlibs File Format.