Provided by: dpkg_1.13.11ubuntu6_i386
dpkg-divert - override a package’s version of a file
dpkg-divert [options] [--add] <file>
dpkg-divert [options] --remove <file>
dpkg-divert [options] --list <glob-pattern>
dpkg-divert [options] --truename <file>
File ‘diversions’ are a way of forcing dpkg not to install a file into
its location, but to a ‘diverted’ location. Diversions can be used
through the Debian package scripts to move a file away when it causes a
conflict. System administrators can also use it to override some
package’s configuration file, or whenever some files (which aren’t
marked as ’conffiles’) need to be preserved by dpkg, when installing a
newer version of a package which contains those files.
dpkg-divert is the utility used to set up and update the list of
diversions. It functions in three basic modes - adding, removing, and
listing diversions. The options are --add, --remove, and --list,
respectively. Additionally, it can print out the real name for a
diverted file with --truename. Other options (listed below) may also
Set the dpkg data directory to <directory> (default:
<divert-to> is the name used by other packages’ versions.
--help Output the version and the short usage instructions, and exit
Specifies that all packages’ versions are diverted.
<package> is the name of a package whose copy of <file> will not
Quiet mode, i.e. no verbose output.
Actually move the file aside (or back). dpkg-divert will abort
operation in case the destination file already exists.
--test Test mode, i.e. don’t actually perform any changes, just
Output program name and version and exit successfully.
When adding, default is --local and --divert <original>.distrib. When
removing, --package or --local and --divert must match if specified.
Directories can’t be diverted with dpkg-divert.
Care should be taken when diverting shared libraries, ldconfig (8)
creates a symbolic link based on the DT_SONAME field embedded in the
library. Because ldconfig doesn’t honour diverts (only dpkg does), if
a diverted library has the same SONAME as the undiverted one the
symlink may end up pointing at the diverted library.
To divert all copies of a /usr/bin/example.foo to /usr/bin/example,
performing the rename if required:
dpkg-divert --divert /usr/bin/example --rename /usr/bin/example.foo
To remove that diversion:
dpkg-divert --rename --remove /usr/bin/example.foo
To divert any package trying to install /usr/bin/example to
/usr/bin/example.foo, except your own wibble package:
dpkg-divert --package wibble --divert /usr/bin/example.foo --rename
To remove that diversion:
dpkg-divert --package wibble --rename --remove /usr/bin/example
File which contains the current list of diversions of the
system. It is located in the dpkg administration directory,
along with other files important to dpkg, such as ‘status’ or
Note: dpkg-divert preserves the old copy of this file, with
extension "-old", before replacing it with the new one.
Copyright (C) 1995 Ian Jackson.
This is free software; see the GNU General Public Licence version 2 or
later for copying conditions. There is NO warranty.