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.