/usr/share/doc/ubuntu-policy/policy.html/ap-pkg-diversions.html is in ubuntu-policy 3.8.2.0ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<title>Ubuntu Policy Manual - Diversions - overriding a package's version of a file (from old Packaging Manual)</title>
<link href="index.html" rel="start">
<link href="ap-pkg-alternatives.html" rel="prev">
<link href="index.html" rel="next">
<link href="index.html#contents" rel="contents">
<link href="index.html#copyright" rel="copyright">
<link href="ch-scope.html" rel="chapter" title="1 About this manual">
<link href="ch-archive.html" rel="chapter" title="2 The Ubuntu Archive">
<link href="ch-binary.html" rel="chapter" title="3 Binary packages">
<link href="ch-source.html" rel="chapter" title="4 Source packages">
<link href="ch-controlfields.html" rel="chapter" title="5 Control files and their fields">
<link href="ch-maintainerscripts.html" rel="chapter" title="6 Package maintainer scripts and installation procedure">
<link href="ch-relationships.html" rel="chapter" title="7 Declaring relationships between packages">
<link href="ch-sharedlibs.html" rel="chapter" title="8 Shared libraries">
<link href="ch-opersys.html" rel="chapter" title="9 The Operating System">
<link href="ch-files.html" rel="chapter" title="10 Files">
<link href="ch-customized-programs.html" rel="chapter" title="11 Customized programs">
<link href="ch-docs.html" rel="chapter" title="12 Documentation">
<link href="ap-pkg-scope.html" rel="appendix" title="A Introduction and scope of these appendices">
<link href="ap-pkg-binarypkg.html" rel="appendix" title="B Binary packages (from old Packaging Manual)">
<link href="ap-pkg-sourcepkg.html" rel="appendix" title="C Source packages (from old Packaging Manual)">
<link href="ap-pkg-controlfields.html" rel="appendix" title="D Control files and their fields (from old Packaging Manual)">
<link href="ap-pkg-conffiles.html" rel="appendix" title="E Configuration file handling (from old Packaging Manual)">
<link href="ap-pkg-alternatives.html" rel="appendix" title="F Alternative versions of an interface - <code>update-alternatives</code> (from old Packaging Manual)">
<link href="ap-pkg-diversions.html" rel="appendix" title="G Diversions - overriding a package's version of a file (from old Packaging Manual)">
<link href="ch-scope.html#s1.1" rel="section" title="1.1 Scope">
<link href="ch-scope.html#s1.2" rel="section" title="1.2 New versions of this document">
<link href="ch-scope.html#s-authors" rel="section" title="1.3 Authors and Maintainers">
<link href="ch-scope.html#s-related" rel="section" title="1.4 Related documents">
<link href="ch-scope.html#s-definitions" rel="section" title="1.5 Definitions">
<link href="ch-archive.html#s-ulp" rel="section" title="2.1 The Ubuntu Licensing Policy">
<link href="ch-archive.html#s-sections" rel="section" title="2.2 Archive areas">
<link href="ch-archive.html#s-pkgcopyright" rel="section" title="2.3 Copyright considerations">
<link href="ch-archive.html#s-subsections" rel="section" title="2.4 Sections">
<link href="ch-archive.html#s-priorities" rel="section" title="2.5 Priorities">
<link href="ch-binary.html#s3.1" rel="section" title="3.1 The package name">
<link href="ch-binary.html#s-versions" rel="section" title="3.2 The version of a package">
<link href="ch-binary.html#s3.3" rel="section" title="3.3 The maintainer of a package">
<link href="ch-binary.html#s-descriptions" rel="section" title="3.4 The description of a package">
<link href="ch-binary.html#s3.5" rel="section" title="3.5 Dependencies">
<link href="ch-binary.html#s-virtual_pkg" rel="section" title="3.6 Virtual packages">
<link href="ch-binary.html#s3.7" rel="section" title="3.7 Base system">
<link href="ch-binary.html#s3.8" rel="section" title="3.8 Essential packages">
<link href="ch-binary.html#s-maintscripts" rel="section" title="3.9 Maintainer Scripts">
<link href="ch-source.html#s-standardsversion" rel="section" title="4.1 Standards conformance">
<link href="ch-source.html#s-pkg-relations" rel="section" title="4.2 Package relationships">
<link href="ch-source.html#s4.3" rel="section" title="4.3 Changes to the upstream sources">
<link href="ch-source.html#s-dpkgchangelog" rel="section" title="4.4 Ubuntu changelog: <code>debian/changelog</code>">
<link href="ch-source.html#s-dpkgcopyright" rel="section" title="4.5 Copyright: <code>debian/copyright</code>">
<link href="ch-source.html#s4.6" rel="section" title="4.6 Error trapping in makefiles">
<link href="ch-source.html#s-timestamps" rel="section" title="4.7 Time Stamps">
<link href="ch-source.html#s-restrictions" rel="section" title="4.8 Restrictions on objects in source packages">
<link href="ch-source.html#s-debianrules" rel="section" title="4.9 Main building script: <code>debian/rules</code>">
<link href="ch-source.html#s-substvars" rel="section" title="4.10 Variable substitutions: <code>debian/substvars</code>">
<link href="ch-source.html#s-debianwatch" rel="section" title="4.11 Optional upstream source location: <code>debian/watch</code>">
<link href="ch-source.html#s-debianfiles" rel="section" title="4.12 Generated files list: <code>debian/files</code>">
<link href="ch-source.html#s-embeddedfiles" rel="section" title="4.13 Convenience copies of code">
<link href="ch-source.html#s-readmesource" rel="section" title="4.14 Source package handling: <code>debian/README.source</code>">
<link href="ch-controlfields.html#s-controlsyntax" rel="section" title="5.1 Syntax of control files">
<link href="ch-controlfields.html#s-sourcecontrolfiles" rel="section" title="5.2 Source package control files -- <code>debian/control</code>">
<link href="ch-controlfields.html#s-binarycontrolfiles" rel="section" title="5.3 Binary package control files -- <code>DEBIAN/control</code>">
<link href="ch-controlfields.html#s-debiansourcecontrolfiles" rel="section" title="5.4 Debian source control files -- <samp>.dsc</samp>">
<link href="ch-controlfields.html#s-debianchangesfiles" rel="section" title="5.5 Debian changes files -- <code>.changes</code>">
<link href="ch-controlfields.html#s-controlfieldslist" rel="section" title="5.6 List of fields">
<link href="ch-controlfields.html#s5.7" rel="section" title="5.7 User-defined fields">
<link href="ch-maintainerscripts.html#s6.1" rel="section" title="6.1 Introduction to package maintainer scripts">
<link href="ch-maintainerscripts.html#s-idempotency" rel="section" title="6.2 Maintainer scripts idempotency">
<link href="ch-maintainerscripts.html#s-controllingterminal" rel="section" title="6.3 Controlling terminal for maintainer scripts">
<link href="ch-maintainerscripts.html#s-exitstatus" rel="section" title="6.4 Exit status">
<link href="ch-maintainerscripts.html#s-mscriptsinstact" rel="section" title="6.5 Summary of ways maintainer scripts are called">
<link href="ch-maintainerscripts.html#s-unpackphase" rel="section" title="6.6 Details of unpack phase of installation or upgrade">
<link href="ch-maintainerscripts.html#s-configdetails" rel="section" title="6.7 Details of configuration">
<link href="ch-maintainerscripts.html#s-removedetails" rel="section" title="6.8 Details of removal and/or configuration purging">
<link href="ch-relationships.html#s-depsyntax" rel="section" title="7.1 Syntax of relationship fields">
<link href="ch-relationships.html#s-binarydeps" rel="section" title="7.2 Binary Dependencies - <samp>Depends</samp>, <samp>Recommends</samp>, <samp>Suggests</samp>, <samp>Enhances</samp>, <samp>Pre-Depends</samp>">
<link href="ch-relationships.html#s-breaks" rel="section" title="7.3 Packages which break other packages - <samp>Breaks</samp>">
<link href="ch-relationships.html#s-conflicts" rel="section" title="7.4 Conflicting binary packages - <samp>Conflicts</samp>">
<link href="ch-relationships.html#s-virtual" rel="section" title="7.5 Virtual packages - <samp>Provides</samp>">
<link href="ch-relationships.html#s-replaces" rel="section" title="7.6 Overwriting files and replacing packages - <samp>Replaces</samp>">
<link href="ch-relationships.html#s-sourcebinarydeps" rel="section" title="7.7 Relationships between source and binary packages - <samp>Build-Depends</samp>, <samp>Build-Depends-Indep</samp>, <samp>Build-Conflicts</samp>, <samp>Build-Conflicts-Indep</samp>">
<link href="ch-sharedlibs.html#s-sharedlibs-runtime" rel="section" title="8.1 Run-time shared libraries">
<link href="ch-sharedlibs.html#s-sharedlibs-support-files" rel="section" title="8.2 Shared library support files">
<link href="ch-sharedlibs.html#s-sharedlibs-static" rel="section" title="8.3 Static libraries">
<link href="ch-sharedlibs.html#s-sharedlibs-dev" rel="section" title="8.4 Development files">
<link href="ch-sharedlibs.html#s-sharedlibs-intradeps" rel="section" title="8.5 Dependencies between the packages of the same library">
<link href="ch-sharedlibs.html#s-sharedlibs-shlibdeps" rel="section" title="8.6 Dependencies between the library and other packages - the <samp>shlibs</samp> system">
<link href="ch-opersys.html#s9.1" rel="section" title="9.1 File system hierarchy">
<link href="ch-opersys.html#s9.2" rel="section" title="9.2 Users and groups">
<link href="ch-opersys.html#s-sysvinit" rel="section" title="9.3 System run levels and <code>init.d</code> scripts">
<link href="ch-opersys.html#s9.4" rel="section" title="9.4 Console messages from <code>init.d</code> scripts">
<link href="ch-opersys.html#s9.5" rel="section" title="9.5 Cron jobs">
<link href="ch-opersys.html#s-menus" rel="section" title="9.6 Menus">
<link href="ch-opersys.html#s-mime" rel="section" title="9.7 Multimedia handlers">
<link href="ch-opersys.html#s9.8" rel="section" title="9.8 Keyboard configuration">
<link href="ch-opersys.html#s9.9" rel="section" title="9.9 Environment variables">
<link href="ch-opersys.html#s-doc-base" rel="section" title="9.10 Registering Documents using doc-base">
<link href="ch-files.html#s10.1" rel="section" title="10.1 Binaries">
<link href="ch-files.html#s-libraries" rel="section" title="10.2 Libraries">
<link href="ch-files.html#s10.3" rel="section" title="10.3 Shared libraries">
<link href="ch-files.html#s-scripts" rel="section" title="10.4 Scripts">
<link href="ch-files.html#s10.5" rel="section" title="10.5 Symbolic links">
<link href="ch-files.html#s10.6" rel="section" title="10.6 Device files">
<link href="ch-files.html#s-config-files" rel="section" title="10.7 Configuration files">
<link href="ch-files.html#s10.8" rel="section" title="10.8 Log files">
<link href="ch-files.html#s10.9" rel="section" title="10.9 Permissions and owners">
<link href="ch-customized-programs.html#s-arch-spec" rel="section" title="11.1 Architecture specification strings">
<link href="ch-customized-programs.html#s11.2" rel="section" title="11.2 Daemons">
<link href="ch-customized-programs.html#s11.3" rel="section" title="11.3 Using pseudo-ttys and modifying wtmp, utmp and lastlog">
<link href="ch-customized-programs.html#s11.4" rel="section" title="11.4 Editors and pagers">
<link href="ch-customized-programs.html#s-web-appl" rel="section" title="11.5 Web servers and applications">
<link href="ch-customized-programs.html#s-mail-transport-agents" rel="section" title="11.6 Mail transport, delivery and user agents">
<link href="ch-customized-programs.html#s11.7" rel="section" title="11.7 News system configuration">
<link href="ch-customized-programs.html#s11.8" rel="section" title="11.8 Programs for the X Window System">
<link href="ch-customized-programs.html#s-perl" rel="section" title="11.9 Perl programs and modules">
<link href="ch-customized-programs.html#s-emacs" rel="section" title="11.10 Emacs lisp programs">
<link href="ch-customized-programs.html#s11.11" rel="section" title="11.11 Games">
<link href="ch-docs.html#s12.1" rel="section" title="12.1 Manual pages">
<link href="ch-docs.html#s12.2" rel="section" title="12.2 Info documents">
<link href="ch-docs.html#s12.3" rel="section" title="12.3 Additional documentation">
<link href="ch-docs.html#s12.4" rel="section" title="12.4 Preferred documentation formats">
<link href="ch-docs.html#s-copyrightfile" rel="section" title="12.5 Copyright information">
<link href="ch-docs.html#s12.6" rel="section" title="12.6 Examples">
<link href="ch-docs.html#s-changelogs" rel="section" title="12.7 Changelog files">
<link href="ap-pkg-binarypkg.html#s-pkg-bincreating" rel="section" title="B.1 Creating package files - <code>dpkg-deb</code>">
<link href="ap-pkg-binarypkg.html#s-pkg-controlarea" rel="section" title="B.2 Package control information files">
<link href="ap-pkg-binarypkg.html#s-pkg-controlfile" rel="section" title="B.3 The main control information file: <samp>control</samp>">
<link href="ap-pkg-binarypkg.html#sB.4" rel="section" title="B.4 Time Stamps">
<link href="ap-pkg-sourcepkg.html#s-pkg-sourcetools" rel="section" title="C.1 Tools for processing source packages">
<link href="ap-pkg-sourcepkg.html#s-pkg-sourcetree" rel="section" title="C.2 The Debianised source tree">
<link href="ap-pkg-sourcepkg.html#s-pkg-sourcearchives" rel="section" title="C.3 Source packages as archives">
<link href="ap-pkg-sourcepkg.html#sC.4" rel="section" title="C.4 Unpacking a Debian source package without <code>dpkg-source</code>">
<link href="ap-pkg-controlfields.html#sD.1" rel="section" title="D.1 Syntax of control files">
<link href="ap-pkg-controlfields.html#sD.2" rel="section" title="D.2 List of fields">
<link href="ap-pkg-conffiles.html#sE.1" rel="section" title="E.1 Automatic handling of configuration files by <code>dpkg</code>">
<link href="ap-pkg-conffiles.html#sE.2" rel="section" title="E.2 Fully-featured maintainer script configuration handling">
<link href="ch-archive.html#s-main" rel="subsection" title="2.2.1 The main archive area">
<link href="ch-archive.html#s-restricted" rel="subsection" title="2.2.2 The restricted archive area">
<link href="ch-archive.html#s-universe" rel="subsection" title="2.2.3 The universe archive area">
<link href="ch-archive.html#s-multiverse" rel="subsection" title="2.2.4 The multiverse archive area">
<link href="ch-binary.html#s3.2.1" rel="subsection" title="3.2.1 Version numbers based on dates">
<link href="ch-binary.html#s-synopsis" rel="subsection" title="3.4.1 The single line synopsis">
<link href="ch-binary.html#s-extendeddesc" rel="subsection" title="3.4.2 The extended description">
<link href="ch-binary.html#s-maintscriptprompt" rel="subsection" title="3.9.1 Prompting in maintainer scripts">
<link href="ch-source.html#s-debianrules-options" rel="subsection" title="4.9.1 <code>debian/rules</code> and <samp>DEB_BUILD_OPTIONS</samp>">
<link href="ch-controlfields.html#s-f-Source" rel="subsection" title="5.6.1 <samp>Source</samp>">
<link href="ch-controlfields.html#s-f-Maintainer" rel="subsection" title="5.6.2 <samp>Maintainer</samp>">
<link href="ch-controlfields.html#s-f-Uploaders" rel="subsection" title="5.6.3 <samp>Uploaders</samp>">
<link href="ch-controlfields.html#s-f-Changed-By" rel="subsection" title="5.6.4 <samp>Changed-By</samp>">
<link href="ch-controlfields.html#s-f-Section" rel="subsection" title="5.6.5 <samp>Section</samp>">
<link href="ch-controlfields.html#s-f-Priority" rel="subsection" title="5.6.6 <samp>Priority</samp>">
<link href="ch-controlfields.html#s-f-Package" rel="subsection" title="5.6.7 <samp>Package</samp>">
<link href="ch-controlfields.html#s-f-Architecture" rel="subsection" title="5.6.8 <samp>Architecture</samp>">
<link href="ch-controlfields.html#s-f-Essential" rel="subsection" title="5.6.9 <samp>Essential</samp>">
<link href="ch-controlfields.html#s5.6.10" rel="subsection" title="5.6.10 Package interrelationship fields: <samp>Depends</samp>, <samp>Pre-Depends</samp>, <samp>Recommends</samp>, <samp>Suggests</samp>, <samp>Breaks</samp>, <samp>Conflicts</samp>, <samp>Provides</samp>, <samp>Replaces</samp>, <samp>Enhances</samp>">
<link href="ch-controlfields.html#s-f-Standards-Version" rel="subsection" title="5.6.11 <samp>Standards-Version</samp>">
<link href="ch-controlfields.html#s-f-Version" rel="subsection" title="5.6.12 <samp>Version</samp>">
<link href="ch-controlfields.html#s-f-Description" rel="subsection" title="5.6.13 <samp>Description</samp>">
<link href="ch-controlfields.html#s-f-Distribution" rel="subsection" title="5.6.14 <samp>Distribution</samp>">
<link href="ch-controlfields.html#s-f-Date" rel="subsection" title="5.6.15 <samp>Date</samp>">
<link href="ch-controlfields.html#s-f-Format" rel="subsection" title="5.6.16 <samp>Format</samp>">
<link href="ch-controlfields.html#s-f-Urgency" rel="subsection" title="5.6.17 <samp>Urgency</samp>">
<link href="ch-controlfields.html#s-f-Changes" rel="subsection" title="5.6.18 <samp>Changes</samp>">
<link href="ch-controlfields.html#s-f-Binary" rel="subsection" title="5.6.19 <samp>Binary</samp>">
<link href="ch-controlfields.html#s-f-Installed-Size" rel="subsection" title="5.6.20 <samp>Installed-Size</samp>">
<link href="ch-controlfields.html#s-f-Files" rel="subsection" title="5.6.21 <samp>Files</samp>">
<link href="ch-controlfields.html#s-f-Closes" rel="subsection" title="5.6.22 <samp>Closes</samp>">
<link href="ch-controlfields.html#s-f-Launchpad-Bugs-Fixed" rel="subsection" title="5.6.23 <samp>Launchpad-Bugs-Fixed</samp>">
<link href="ch-controlfields.html#s-f-Homepage" rel="subsection" title="5.6.24 <samp>Homepage</samp>">
<link href="ch-relationships.html#s7.6.1" rel="subsection" title="7.6.1 Overwriting files in other packages">
<link href="ch-relationships.html#s7.6.2" rel="subsection" title="7.6.2 Replacing whole packages, forcing their removal">
<link href="ch-sharedlibs.html#s-ldconfig" rel="subsection" title="8.1.1 <samp>ldconfig</samp>">
<link href="ch-sharedlibs.html#s8.6.1" rel="subsection" title="8.6.1 The <samp>shlibs</samp> files present on the system">
<link href="ch-sharedlibs.html#s8.6.2" rel="subsection" title="8.6.2 How to use <code>dpkg-shlibdeps</code> and the <code>shlibs</code> files">
<link href="ch-sharedlibs.html#s-shlibs" rel="subsection" title="8.6.3 The <code>shlibs</code> File Format">
<link href="ch-sharedlibs.html#s8.6.4" rel="subsection" title="8.6.4 Providing a <code>shlibs</code> file">
<link href="ch-sharedlibs.html#s-shlibslocal" rel="subsection" title="8.6.5 Writing the <code>debian/shlibs.local</code> file">
<link href="ch-opersys.html#s-fhs" rel="subsection" title="9.1.1 File System Structure">
<link href="ch-opersys.html#s9.1.2" rel="subsection" title="9.1.2 Site-specific programs">
<link href="ch-opersys.html#s9.1.3" rel="subsection" title="9.1.3 The system-wide mail directory">
<link href="ch-opersys.html#s9.2.1" rel="subsection" title="9.2.1 Introduction">
<link href="ch-opersys.html#s9.2.2" rel="subsection" title="9.2.2 UID and GID classes">
<link href="ch-opersys.html#s-/etc/init.d" rel="subsection" title="9.3.1 Introduction">
<link href="ch-opersys.html#s9.3.2" rel="subsection" title="9.3.2 Writing the scripts">
<link href="ch-opersys.html#s9.3.3" rel="subsection" title="9.3.3 Interfacing with the initscript system">
<link href="ch-opersys.html#s9.3.3.1" rel="subsection" title="9.3.3.1 Managing the links">
<link href="ch-opersys.html#s9.3.3.2" rel="subsection" title="9.3.3.2 Running initscripts">
<link href="ch-opersys.html#s9.3.4" rel="subsection" title="9.3.4 Boot-time initialization">
<link href="ch-opersys.html#s9.3.5" rel="subsection" title="9.3.5 Example">
<link href="ch-files.html#s10.7.1" rel="subsection" title="10.7.1 Definitions">
<link href="ch-files.html#s10.7.2" rel="subsection" title="10.7.2 Location">
<link href="ch-files.html#s10.7.3" rel="subsection" title="10.7.3 Behavior">
<link href="ch-files.html#s10.7.4" rel="subsection" title="10.7.4 Sharing configuration files">
<link href="ch-files.html#s10.7.5" rel="subsection" title="10.7.5 User configuration files ("dotfiles")">
<link href="ch-files.html#s10.9.1" rel="subsection" title="10.9.1 The use of <code>dpkg-statoverride</code>">
<link href="ch-customized-programs.html#s11.8.1" rel="subsection" title="11.8.1 Providing X support and package priorities">
<link href="ch-customized-programs.html#s11.8.2" rel="subsection" title="11.8.2 Packages providing an X server">
<link href="ch-customized-programs.html#s11.8.3" rel="subsection" title="11.8.3 Packages providing a terminal emulator">
<link href="ch-customized-programs.html#s11.8.4" rel="subsection" title="11.8.4 Packages providing a window manager">
<link href="ch-customized-programs.html#s11.8.5" rel="subsection" title="11.8.5 Packages providing fonts">
<link href="ch-customized-programs.html#s11.8.6" rel="subsection" title="11.8.6 Application defaults files">
<link href="ch-customized-programs.html#s11.8.7" rel="subsection" title="11.8.7 Installation directory issues">
<link href="ch-customized-programs.html#s11.8.8" rel="subsection" title="11.8.8 The OSF/Motif and OpenMotif libraries">
<link href="ch-customized-programs.html#s11.8.9" rel="subsection" title="11.8.9 Icon caching">
<link href="ap-pkg-sourcepkg.html#s-pkg-dpkg-source" rel="subsection" title="C.1.1 <code>dpkg-source</code> - packs and unpacks Debian source packages">
<link href="ap-pkg-sourcepkg.html#s-pkg-dpkg-buildpackage" rel="subsection" title="C.1.2 <code>dpkg-buildpackage</code> - overall package-building control script">
<link href="ap-pkg-sourcepkg.html#s-pkg-dpkg-gencontrol" rel="subsection" title="C.1.3 <code>dpkg-gencontrol</code> - generates binary package control files">
<link href="ap-pkg-sourcepkg.html#s-pkg-dpkg-shlibdeps" rel="subsection" title="C.1.4 <code>dpkg-shlibdeps</code> - calculates shared library dependencies">
<link href="ap-pkg-sourcepkg.html#s-pkg-dpkg-distaddfile" rel="subsection" title="C.1.5 <code>dpkg-distaddfile</code> - adds a file to <code>debian/files</code>">
<link href="ap-pkg-sourcepkg.html#s-pkg-dpkg-genchanges" rel="subsection" title="C.1.6 <code>dpkg-genchanges</code> - generates a <code>.changes</code> upload control file">
<link href="ap-pkg-sourcepkg.html#s-pkg-dpkg-parsechangelog" rel="subsection" title="C.1.7 <code>dpkg-parsechangelog</code> - produces parsed representation of a changelog">
<link href="ap-pkg-sourcepkg.html#s-pkg-dpkg-architecture" rel="subsection" title="C.1.8 <code>dpkg-architecture</code> - information about the build and host system">
<link href="ap-pkg-sourcepkg.html#s-pkg-debianrules" rel="subsection" title="C.2.1 <code>debian/rules</code> - the main building script">
<link href="ap-pkg-sourcepkg.html#s-pkg-dpkgchangelog" rel="subsection" title="C.2.2 <code>debian/changelog</code>">
<link href="ap-pkg-sourcepkg.html#sC.2.2.1" rel="subsection" title="C.2.2.1 Defining alternative changelog formats">
<link href="ap-pkg-sourcepkg.html#s-pkg-srcsubstvars" rel="subsection" title="C.2.3 <code>debian/substvars</code> and variable substitutions">
<link href="ap-pkg-sourcepkg.html#sC.2.4" rel="subsection" title="C.2.4 <code>debian/files</code>">
<link href="ap-pkg-sourcepkg.html#sC.2.5" rel="subsection" title="C.2.5 <code>debian/tmp</code>">
<link href="ap-pkg-sourcepkg.html#sC.4.1" rel="subsection" title="C.4.1 Restrictions on objects in source packages">
<link href="ap-pkg-controlfields.html#s-pkg-f-Filename" rel="subsection" title="D.2.1 <samp>Filename</samp> and <samp>MSDOS-Filename</samp>">
<link href="ap-pkg-controlfields.html#s-pkg-f-Size" rel="subsection" title="D.2.2 <samp>Size</samp> and <samp>MD5sum</samp>">
<link href="ap-pkg-controlfields.html#s-pkg-f-Status" rel="subsection" title="D.2.3 <samp>Status</samp>">
<link href="ap-pkg-controlfields.html#s-pkg-f-Config-Version" rel="subsection" title="D.2.4 <samp>Config-Version</samp>">
<link href="ap-pkg-controlfields.html#s-pkg-f-Conffiles" rel="subsection" title="D.2.5 <samp>Conffiles</samp>">
<link href="ap-pkg-controlfields.html#sD.2.6" rel="subsection" title="D.2.6 Obsolete fields">
</head>
<body>
<p><a name="ap-pkg-diversions"></a></p>
<hr>
<p>
[ <a href="ap-pkg-alternatives.html">previous</a> ]
[ <a href="index.html#contents">Contents</a> ]
[ <a href="ch-scope.html">1</a> ]
[ <a href="ch-archive.html">2</a> ]
[ <a href="ch-binary.html">3</a> ]
[ <a href="ch-source.html">4</a> ]
[ <a href="ch-controlfields.html">5</a> ]
[ <a href="ch-maintainerscripts.html">6</a> ]
[ <a href="ch-relationships.html">7</a> ]
[ <a href="ch-sharedlibs.html">8</a> ]
[ <a href="ch-opersys.html">9</a> ]
[ <a href="ch-files.html">10</a> ]
[ <a href="ch-customized-programs.html">11</a> ]
[ <a href="ch-docs.html">12</a> ]
[ <a href="ap-pkg-scope.html">A</a> ]
[ <a href="ap-pkg-binarypkg.html">B</a> ]
[ <a href="ap-pkg-sourcepkg.html">C</a> ]
[ <a href="ap-pkg-controlfields.html">D</a> ]
[ <a href="ap-pkg-conffiles.html">E</a> ]
[ <a href="ap-pkg-alternatives.html">F</a> ]
[ G ]
[ <a href="index.html">next</a> ]
</p>
<hr>
<h1>
Ubuntu Policy Manual
<br>Appendix G - Diversions - overriding a package's version of a file (from old Packaging Manual)</h1>
<hr>
<p>
It is possible to have <code>dpkg</code> not overwrite a file when it
reinstalls the package it belongs to, and to have it put the file from the
package somewhere else instead.
</p>
<p>
This can be used locally to override a package's version of a file, or by one
package to override another's version (or provide a wrapper for it).
</p>
<p>
Before deciding to use a diversion, read <a
href="ap-pkg-alternatives.html">Alternative versions of an interface -
<code>update-alternatives</code> (from old Packaging Manual), Appendix F</a> to
see if you really want a diversion rather than several alternative versions of
a program.
</p>
<p>
There is a diversion list, which is read by <code>dpkg</code>, and updated by a
special program <code>dpkg-divert</code>. Please see
<code>dpkg-divert(8)</code> for full details of its operation.
</p>
<p>
When a package wishes to divert a file from another, it should call
<code>dpkg-divert</code> in its preinst to add the diversion and rename the
existing file. For example, supposing that a <code>smailwrapper</code> package
wishes to install a wrapper around <code>/usr/sbin/smail</code>:
</p>
<pre>
dpkg-divert --package smailwrapper --add --rename \
--divert /usr/sbin/smail.real /usr/sbin/smail
</pre>
<p>
The <samp>--package smailwrapper</samp> ensures that
<code>smailwrapper</code>'s copy of <code>/usr/sbin/smail</code> can bypass the
diversion and get installed as the true version. It's safe to add the
diversion unconditionally on upgrades since it will be left unchanged if it
already exists, but <code>dpkg-divert</code> will display a message. To
suppress that message, make the command conditional on the version from which
the package is being upgraded:
</p>
<pre>
if [ upgrade != "$1" ] || dpkg --compare-versions "$2" lt 1.0-2; then
dpkg-divert --package smailwrapper --add --rename \
--divert /usr/sbin/smail.real /usr/sbin/smail
fi
</pre>
<p>
where <samp>1.0-2</samp> is the version at which the diversion was first added
to the package. Running the command during abort-upgrade is pointless but
harmless.
</p>
<p>
The postrm has to do the reverse:
</p>
<pre>
if [ remove = "$1" -o abort-install = "$1" -o disappear = "$1" ]; then
dpkg-divert --package smailwrapper --remove --rename \
--divert /usr/sbin/smail.real /usr/sbin/smail
fi
</pre>
<p>
If the diversion was added at a particular version, the postrm should also
handle the failure case of upgrading from an older version (unless the older
version is so old that direct upgrades are no longer supported):
</p>
<pre>
if [ abort-upgrade = "$1" ] && dpkg --compare-versions "$2" lt 1.0-2; then
dpkg-divert --package smailwrapper --remove --rename \
--divert /usr/sbin/smail.real /usr/sbin/smail
fi
</pre>
<p>
where <samp>1.02-2</samp> is the version at which the diversion was first added
to the package. The postrm should not remove the diversion on upgrades both
because there's no reason to remove the diversion only to immediately re-add it
and since the postrm of the old package is run after unpacking so the removal
of the diversion will fail.
</p>
<p>
Do not attempt to divert a file which is vitally important for the system's
operation - when using <code>dpkg-divert</code> there is a time, after it has
been diverted but before <code>dpkg</code> has installed the new version, when
the file does not exist.
</p>
<hr>
<p>
[ <a href="ap-pkg-alternatives.html">previous</a> ]
[ <a href="index.html#contents">Contents</a> ]
[ <a href="ch-scope.html">1</a> ]
[ <a href="ch-archive.html">2</a> ]
[ <a href="ch-binary.html">3</a> ]
[ <a href="ch-source.html">4</a> ]
[ <a href="ch-controlfields.html">5</a> ]
[ <a href="ch-maintainerscripts.html">6</a> ]
[ <a href="ch-relationships.html">7</a> ]
[ <a href="ch-sharedlibs.html">8</a> ]
[ <a href="ch-opersys.html">9</a> ]
[ <a href="ch-files.html">10</a> ]
[ <a href="ch-customized-programs.html">11</a> ]
[ <a href="ch-docs.html">12</a> ]
[ <a href="ap-pkg-scope.html">A</a> ]
[ <a href="ap-pkg-binarypkg.html">B</a> ]
[ <a href="ap-pkg-sourcepkg.html">C</a> ]
[ <a href="ap-pkg-controlfields.html">D</a> ]
[ <a href="ap-pkg-conffiles.html">E</a> ]
[ <a href="ap-pkg-alternatives.html">F</a> ]
[ G ]
[ <a href="index.html">next</a> ]
</p>
<hr>
<p>
Ubuntu Policy Manual
</p>
<address>
version 3.8.2.0ubuntu1, 2009-06-19<br>
<br>
<a href="ch-scope.html#s-authors">The Debian Policy Mailing List</a><br>
<a href="ch-scope.html#s-authors">The Ubuntu Developers Mailing List</a><br>
<br>
</address>
<hr>
</body>
</html>
|