dpkg-divert

Autres langues

Langue: en

Version: 66026 (mandriva - 22/10/07)

Section: 8 (Commandes administrateur)

NAME

dpkg-divert - override a package's version of a file

SYNOPSIS

dpkg-divert [options] [--add] <file>
dpkg-divert [options] --remove <file>
dpkg-divert [options] --list <glob-pattern>
dpkg-divert [options] --truename <file>

DESCRIPTION

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 be specified.

OPTIONS

--admindir <directory>
Set the dpkg data directory to <directory> (default: /var/lib/dpkg).
--divert <divert-to>
<divert-to> is the name used by other packages' versions.
--help
Output the version and the short usage instructions, and exit successfully.
--local
Specifies that all packages' versions are diverted.
--package <package>
<package> is the name of a package whose copy of <file> will not be diverted.
--quiet
Quiet mode, i.e. no verbose output.
--rename
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 demonstrate.
--version
Output program name and version and exit successfully.

NOTES

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.

EXAMPLES

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 /usr/bin/example

To remove that diversion:

dpkg-divert --package wibble --rename --remove /usr/bin/example

FILES

/var/lib/dpkg/diversions
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 `available'.
Note: dpkg-divert preserves the old copy of this file, with extension "-old", before replacing it with the new one.

SEE ALSO

dpkg(8).

AUTHOR

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.