7.3. Packages which break other packages - Breaks
When one binary package declares that it breaks another, dpkg
will refuse to allow the package which declares Breaks
to be unpacked unless the broken package is deconfigured first, and it will refuse to allow the broken package to be reconfigured.
A package will not be regarded as causing breakage merely because its configuration files are still installed; it must be at least “Half-Installed”.
A special exception is made for packages which declare that they break their own package name or a virtual package which they provide (see below): this does not count as a real breakage.
Normally a Breaks
entry will have an “earlier than” version clause; such a Breaks
is introduced in the version of an (implicit or explicit) dependency which violates an assumption or reveals a bug in earlier versions of the broken package, or which takes over a file from earlier versions of the package named in Breaks
. This use of Breaks
will inform higher-level package management tools that the broken package must be upgraded before the new one.
If the breaking package also overwrites some files from the older package, it should use Replaces
to ensure this goes smoothly. See Overwriting files and replacing packages - Replaces for a full discussion of taking over files from other packages, including how to use Breaks
in those cases.
Many of the cases where Breaks
should be used were previously handled with Conflicts
because Breaks
did not yet exist. Many Conflicts
fields should now be Breaks
. See Conflicting binary packages - Conflicts for more information about the differences.