Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
dpkg-divert(1)			   dpkg suite			  dpkg-divert(1)

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

SYNOPSIS
     dpkg-divert [option...]  command

DESCRIPTION
     dpkg-divert  is  the  utility  used to set up and update the list of diver-
     sions.

     File diversions are a way of forcing dpkg(1) 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. Sys-
     tem 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.

COMMANDS
     [--add] file
	    Add a diversion for file.  The file is currently  not  renamed,  see
	    --rename.

     --remove file
	    Remove a diversion for file.  The file is currently not renamed, see
	    --rename.

     --list glob-pattern
	    List diversions matching glob-pattern.

     --listpackage file
	    Print the name of the package that diverts file (since dpkg 1.15.0).
	    Prints  LOCAL if file is locally diverted and nothing if file is not
	    diverted.

     --truename file
	    Print the real name for a diverted file.

OPTIONS
     --admindir directory
	    Set  the  administrative  directory  to  directory.    Defaults   to
	    <</var/db/dpkg>>.

     --instdir directory
	    Set  the installation directory, which refers to the directory where
	    packages get installed (since dpkg 1.19.2). Defaults to <</>>.

     --root directory
	    Set the root directory to directory, which sets the installation di-
	    rectory to <<directory>> and the administrative directory  to  <<di-
	    rectory/var/db/dpkg>> (since dpkg 1.19.2).

     --divert divert-to
	    divert-to is the location where the versions of file, as provided by
	    other packages, will be diverted.

     --local
	    Specifies  that  all  packages'  versions of this file are diverted.
	    This means, that there are no exceptions, and  whatever  package  is
	    installed, the file is diverted. This can be used by an admin to in-
	    stall a locally modified version.

     --package package
	    package  is the name of a package whose copy of file will not be di-
	    verted. i.e. file will be diverted for all packages except package.

     --quiet
	    Quiet mode, i.e. no verbose output.

     --rename
	    Actually move the file aside (or back). dpkg-divert will abort oper-
	    ation in case the destination file already exists.	This is the com-
	    mon behavior used for diversions of  files	from  the  non-Essential
	    package set (see --no-rename for more details).

     --no-rename
	    Specifies that the file should not be renamed while adding or remov-
	    ing  the  diversion  into the database (since dpkg 1.19.1).  This is
	    intended for diversions of files from  the	Essential  package  set,
	    where  the	temporary  disappearance of the original file is not ac-
	    ceptable, as it can render the system non-functional.  This  is  the
	    default behavior, but that will change in the dpkg 1.20.x cycle.

     --test
	    Test  mode,  i.e.  don't  actually	perform any changes, just demon-
	    strate.

     -?, --help
	    Show the usage message and exit.

     --version
	    Show the version and exit.

EXIT STATUS
     0	    The requested action was successfully performed.

     2	    Fatal or unrecoverable error due to invalid command-line  usage,  or
	    interactions with the system, such as accesses to the database, mem-
	    ory allocations, etc.

ENVIRONMENT
     DPKG_ROOT
	    If	set and the --instdir or --root options have not been specified,
	    it will be	used  as  the  filesystem  root  directory  (since  dpkg
	    1.19.2).

     DPKG_ADMINDIR
	    If set and the --admindir or --root options have not been specified,
	    it will be used as the dpkg data directory.

     DPKG_MAINTSCRIPT_PACKAGE
	    If	set  and  the --local and --package options have not been speci-
	    fied, dpkg-divert will use it as the package name.

     DPKG_COLORS
	    Sets the color mode (since dpkg  1.18.5).	The  currently	accepted
	    values are: auto (default), always and never.

FILES
     /var/db/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  exten-
	    sion -old, before replacing it with the new one.

NOTES
     When  adding, default is --local and --divert original.distrib. When remov-
     ing, --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.   Be-
     cause ldconfig doesn't honour diverts (only dpkg does), the symlink may end
     up  pointing  at  the  diverted library, if a diverted library has the same
     SONAME as the undiverted one.

EXAMPLES
     To divert all copies of a /usr/bin/example  to  /usr/bin/example.foo,  i.e.
     directs   all   packages	providing  /usr/bin/example  to  install  it  as
     /usr/bin/example.foo, performing the rename if required:

     dpkg-divert --divert /usr/bin/example.foo --rename /usr/bin/example

     To remove that diversion:

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

     To divert any package trying to install /usr/bin/example to  /usr/bin/exam-
     ple.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

SEE ALSO
     dpkg(1).

1.19.8				   2022-05-24			  dpkg-divert(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=dpkg-divert&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>

home | help