summaryrefslogtreecommitdiff
path: root/man/C/dpkg-divert.8
blob: f0384e0192a4caeff98f3fad53a50fbce20bac19 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
.TH DPKG\-DIVERT 8 "December 1999" "Debian Project" "dpkg utilities"
.SH NAME
dpkg\-divert - override a package's version of a file
.SH SYNOPSIS
.B dpkg\-divert
[options] [\-\-add]
.I <file>
.br
.B dpkg\-divert
[options] \-\-remove
.I <file>
.br
.B dpkg\-divert
[options]
\-\-list
.I <glob-pattern>
.br
.B dpkg\-divert
[options] \-\-truename
.I <file>
.br
.SH 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.
.sp
.B 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.
.SH OPTIONS
.TP
.I \-\-admindir <directory>
Set the dpkg data directory to <directory> (default: /var/lib/dpkg).
.TP
.I \-\-divert <divert-to>
<divert-to> is the name used by other packages' versions.
.TP
.I \-\-help
Output the version and the short usage instructions, and exit successfully.
.TP
.I \-\-local
Specifies that all packages' versions are diverted.
.TP
.I \-\-package <package>
<package> is the name of a package whose copy of <file> will not be diverted.
.TP
.I \-\-quiet
Quiet mode, i.e. no verbose output.
.TP
.I \-\-rename
Actually move the file aside (or back). dpkg\-divert will abort operation
in case the destination file already exists.
.TP
.I \-\-test
Test mode, i.e. don't actually perform any changes, just demonstrate.
.TP
.I \-\-version
Output program name and version and exit successfully.
.SH 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.
.SH EXAMPLES
To divert all copies of a \fI/usr/bin/example.foo\fR to \fI/usr/bin/example\fR,
performing the rename if required:
.HP
dpkg-divert --divert /usr/bin/example --rename /usr/bin/example.foo
.PP
To remove that diversion:
.HP
dpkg-divert --rename --remove /usr/bin/example.foo

.PP
To divert any package trying to install \fI/usr/bin/example\fR to
\fI/usr/bin/example.foo\fR, except your own \fIwibble\fR package:
.HP
dpkg-divert --package wibble --divert /usr/bin/example.foo --rename /usr/bin/example
.PP
To remove that diversion:
.HP
dpkg-divert --package wibble --rename --remove /usr/bin/example
.SH FILES
.TP
.I /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'.
.br
Note: dpkg\-divert preserves the old copy of this file, with extension
"\-old", before replacing it with the new one.
.SH SEE ALSO
.BR dpkg (1).
.SH AUTHOR
Copyright (C) 1995 Ian Jackson.
.sp
This is free software; see the GNU General Public Licence
version 2 or later for copying conditions.  There is NO warranty.