(debian-policy.info)Essential packages


Next: Maintainer Scripts Prev: Base system Up: Binary packages
Enter node , (file) or (file)node

3.8 Essential packages
======================

Essential is defined as the minimal set of functionality that must be
available and usable on the system at all times, even when packages are
in the “Unpacked” state.  Packages are tagged ‘essential’ for a system
using the ‘Essential’ control field.  The format of the ‘Essential’
control field is described in Note: Essential.

Since these packages cannot be easily removed (one has to specify an
extra `force option' to ‘dpkg’ to do so), this flag must not be used
unless absolutely necessary.  A shared library package must not be
tagged ‘essential’; dependencies will prevent its premature removal, and
we need to be able to remove it when it has been superseded.

Since dpkg will not prevent upgrading of other packages while an
‘essential’ package is in an unconfigured state, all ‘essential’
packages must supply all of their core functionality even when
unconfigured.  If the package cannot satisfy this requirement it must
not be tagged as essential, and any packages depending on this package
must instead have explicit dependency fields as appropriate.

Maintainers should take great care in adding any programs, interfaces,
or functionality to ‘essential’ packages.  Packages may assume that
functionality provided by ‘essential’ packages is always available
without declaring explicit dependencies, which means that removing
functionality from the Essential set is very difficult and is almost
never done.  Any capability added to an ‘essential’ package therefore
creates an obligation to support that capability as part of the
Essential set in perpetuity.

You must not tag any packages ‘essential’ before this has been discussed
on the ‘debian-devel’ mailing list and a consensus about doing that has
been reached.


automatically generated by info2www version 1.2.2.9