*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->Linux man pages -> dpkg (8)              



NAME    [Toc]    [Back]

       dpkg - a medium-level package manager for Debian

SYNOPSIS    [Toc]    [Back]

       dpkg [options] action

WARNING    [Toc]    [Back]

       This  manual is intended for users wishing to understand dpkg's command
       line options and package states in more detail than  that  provided  by
       dpkg --help.

       It  should not be used by package maintainers wishing to understand how
       dpkg will install their packages.  The descriptions of what  dpkg  does
       when installing and removing packages are particularly inadequate.  For
       detailed information about this, please refer to the Package Management
       System  topic under debian-faq in the GNU Info system.  For information
       about creating Debian packages, see the Debian Package Management Tools
       topic in the same place.

DESCRIPTION    [Toc]    [Back]

       dpkg is a medium-level tool to install, build, remove and manage Debian
       GNU/Linux packages. The primary and more  user-friendly	front-end  for
       dpkg  is  dselect(8).   dpkg  itself is controlled entirely via command
       line parameters, which consist of exactly one action and zero  or  more
       options. The action-parameter tells dpkg what to do and options control
       the behavior of the action in some way.

       dpkg can be also be used as a front-end to dpkg-deb.  The following are
       dpkg-deb  actions, and if they are encountered, dpkg just runs dpkg-deb
       with the parameters given to it:
	   -b, --build,
	   -c, --contents,
	   -I, --info,
	   -f, --field,
	   -e, --control,
	   -x, --extract,
	   -X, --vextract, and
       Please refer to dpkg-deb(1) for information about these actions.


       dpkg maintains some usable information about  available	packages.  The
       information  is	divided in three classes: states, selection states and
       flags.  These values are intended to be changed mainly with dselect.

   PACKAGE STATES    [Toc]    [Back]
	      The package is unpacked and configured OK.

	      The installation of the package has been started, but  not  completed
 for some reason.

	      The package is not installed on your system.

	      The package is unpacked, but not configured.

	      The  package is unpacked and configuration has been started, but
	      not yet completed for some reason.

	      Only the configuration files of the package exist on the system.

	      The package is selected for installation.

	      The  package  is	selected  for  deinstallation (i.e. we want to
	      remove all files, except configuration files).

       purge  The package is selected to be purged (i.e.  we  want  to	remove
	      everything, even configuration files).

   PACKAGE FLAGS    [Toc]    [Back]
       hold   A  package  marked  to be on hold is not handled by dpkg, unless
	      forced to do that with option --force-hold.

	      A package marked reinst-required is broken  and  requires  reinstallation.
 These packages cannot be removed, unless forced with
	      option --force-reinstreq.

ACTIONS    [Toc]    [Back]

       dpkg -i | --install package_file...
	      Install the package. If --recursive or -R option	is  specified,
	      package_file must refer to a directory instead.

	      Installation consists of the following steps:

	      1. Extract the control files of the new package.

	      2.  If  another version of the same package was installed before
	      the new installation, execute prerm script of the old package.

	      3. Run preinst script, if provided by the package.

	      4. Unpack the new files, and at the same time back  up  the  old
	      files, so that if something goes wrong, they can be restored.

	      5.  If  another version of the same package was installed before
	      the new installation, execute the postrm script of the old package.
  Note that this script is executed after the preinst script
	      of the new package, because new files are written  at  the  same
	      time old files are removed.

	      6.  Configure the package. See --configure for detailed information
 about how this is done.

       dpkg --unpack package_file ...
	      Unpack the package, but don't configure it. If --recursive or -R
	      option  is  specified,  package_file  must  refer to a directory

       dpkg --configure package ... | -a | --pending
	      Reconfigure an unpacked package.	If -a or  --pending  is  given
	      instead  of  package, all unpacked but unconfigured packages are

	      Configuring consists of the following steps:

	      1. Unpack the configuration files, and at the same time back  up
	      the  old	configuration  files,  so that they can be restored if
	      something goes wrong.

	      2. Run postinst script, if provided by the package.

       dpkg -r | --remove | -P | --purge package ... | -a | --pending
	      Remove an installed package.  -r or --remove  remove  everything
	      except  configuration files.  This may avoid having to reconfigure
 the package if  it  is  reinstalled  later.	(Configuration
	      files  are  the  files  listed  in  the debian/conffiles control
	      file).  -P or --purge removes everything,  including  configuration
  files.   If  -a or --pending is given instead of a package
	      name, then all packages unpacked, but marked to  be  removed  or
	      purged  in  file	/var/lib/dpkg/status,  are  removed or purged,

	      Removing of a package consists of the following steps:

	      1. Run prerm script

	      2. Remove the installed files

	      3. Run postrm script

       dpkg  -p|--print-avail package
	      Display details about package, as found in  /var/lib/dpkg/avail-

       dpkg --update-avail | --merge-avail Packages-file
	      Update  dpkg's  and  dselect's idea of which packages are available.
  With action --merge-avail, old  information  is  combined
	      with  information  from  Packages-file.	With  action --update-
	      avail, old information is replaced with the information  in  the
	      Packages-file.	The   Packages-file  distributed  with	Debian
	      GNU/Linux is simply named Packages.  dpkg keeps  its  record  of
	      available packages in /var/lib/dpkg/available.

       dpkg -A | --record-avail package_file ...
	      Update  dpkg  and dselect's idea of which packages are available
	      with information from the package package_file.  If  --recursive
	      or  -R  option is specified, package_file must refer to a directory

       dpkg --forget-old-unavail
	      Forget about uninstalled unavailable packages.

       dpkg --clear-avail
	      Erase the existing information about what  packages  are	available.

       dpkg -l | --list package-name-pattern ...
	      List packages matching given pattern. If no package-name-pattern
	      is given, list all packages in /var/lib/dpkg/available.	Normal
	      shell  wildchars are allowed in package-name-pattern.  (You will
	      probably have to quote package-name-pattern to prevent the shell
	      from  performing	filename  expansion.   For  example,  dpkg  -l
	      'libc5*' will list all the package names starting with "libc5".)

       dpkg -s | --status package-name ...
	      Report status of specified package. This just displays the entry
	      in the installed package status database.

       dpkg -C | --audit
	      Searches for packages that have been installed only partially on
	      your system.  dpkg will suggest what to do with them to get them

       dpkg --get-selections [pattern...]
	      Get list of package selections, and write it to stdout.

       dpkg --set-selections
	      Set package selections using file read from stdin.

       dpkg --yet-to-unpack
	      Searches for packages selected for installation, but  which  for
	      some reason still haven't been installed.

       dpkg -L | --listfiles package ...
	      List files installed to your system from package.  However, note
	      that files created by package-specific installation-scripts  are
	      not listed.

       dpkg -S | --search filename-search-pattern ...
	      Search  for  a  filename	from  installed packages. All standard
	      shell wildchars can be used in the pattern.

       dpkg --print-architecture
	      Print target architecture (for example,  "i386").   This	option
	      uses gcc.

       dpkg --print-gnu-build-architecture
	      Print  GNU version of target architecture (for example, "i486").

       dpkg --print-installation-architecture
	      Print host architecture for installation.

       dpkg --compare-versions ver1 op ver2
	      Compare version numbers, where op is a  binary  operator.   dpkg
	      returns success (zero result) if the specified condition is satisfied,
 and failure (nonzero result) otherwise.  There  are  two
	      groups  of  operators,  which differ in how they treat a missing
	      ver1 or ver2.  These treat no version as earlier than  any  version:
  lt  le eq ne ge gt.  These treat no version as later than
	      any version: lt-nl le-nl ge-nl gt-nl.  These are	provided  only
	      for compatibility with control file syntax: < << <= = >= >> >.

       dpkg --command-fd <n>
	      Accept a series of commands on input file descriptor <n>.  Note:
	      additional options set on the command line, and thru  this  file
	      descriptor,  are not reset for subsequent commands executed during
 the same run.

       dpkg --help
	      Display a brief help message.

       dpkg --force-help
	      Give help about the --force-thing options.

       dpkg -Dh | --debug=help
	      Give help about debugging options.

       dpkg --licence | dpkg --license
	      Display dpkg licence.

       dpkg --version
	      Display dpkg version information.

	      See  dpkg-deb(1)	for  more  information	about  the   following

	      dpkg -b | --build directory [filename]
		  Build a Debian GNU/Linux package.
	      dpkg -c | --contents filename
		  List contents of Debian GNU/Linux package.
	      dpkg -e | --control filename [directory]
		  Extract control-information from a package.
	      dpkg -x | --extract filename directory
		  Extract the files contained by package.
	      dpkg -f | --field  filename [control-field] ...
		  Display control field(s) of a package.
	      dpkg --fsys-tarfile filename
		  Display the filesystem tar-file contained by a
		  Debian package.
	      dpkg -I | --info filename [control-file]
		  Show information about a package.
	      dpkg -X | --vextract filename directory
		  Extract and display the filenames contained by a

OPTIONS    [Toc]    [Back]

       All  options  can  be specified both on the commandline and in the dpkg
       configuration file /etc/dpkg/dpkg.cfg. Each line in  the  configuration
       file  is  either  an option (exactly the same as the commandline option
       but without leading dashes) or a comment (if it starts with a #).

	      Change after how many errors dpkg will abort. The default is 50.

	      When  a  package is removed, there is a possibility that another
	      installed package depended on the  removed  package.  Specifying
	      this  option will cause automatic deconfiguration of the package
	      which depended on the removed package.

       -Doctal | --debug=octal
	      Set debugging on.  octal is  formed  by  bitwise-orring  desired
	      values  together from the list below (note that these values may
	      change in future releases).  -Dh or --debug=help	display  these
	      debugging values.

	       number  description
		  1   Generally helpful progress information
		  2   Invocation and status of maintainer scripts
		 10   Output for each file processed
		100   Lots of output for each file processed
		 20   Output for each configuration file
		200   Lots of output for each configuration file
		 40   Dependencies and conflicts
		400   Lots of dependencies/conflicts output
	       1000   Lots of drivel about e.g. the dpkg/info dir
	       2000   Insane amounts of drivel

       --force-things | --no-force-things | --refuse-things

	      Force  or refuse (no-force and refuse mean the same thing) to do
	      some things.  things is a comma separated list of things	specified
  below.   --force-help  displays a message describing them.
	      Things marked with (*) are forced by default.

	      Warning: These options are mostly intended to be used by experts
	      only.  Using  them without fully understanding their effects may
	      break your whole system.

	      all: Turns on(or off) all force options.

	      auto-select(*): Select packages to install  them,  and  deselect
	      packages to remove them.

	      downgrade(*):  Install a package, even if newer version of it is
	      already installed.

	      configure-any: Configure	also  any  unpacked  but  unconfigured
	      packages on which the current package depends.

	      hold: Process packages even when marked "hold".

	      remove-reinstreq:  Remove  a  package,  even  if it's broken and
	      marked to require reinstallation.  This may, for example,  cause
	      parts of the package to remain on the system, which will then be
	      forgotten by dpkg.

	      remove-essential: Remove, even  if  the  package	is  considered
	      essential.  Essential  packages  contain	mostly very basic Unix
	      commands. Removing them might cause the  whole  system  to  stop
	      working, so use with caution.

	      depends: Turn all dependency problems into warnings.

	      depends-version:	Don't care about versions when checking dependencies.

	      conflicts: Install, even if it conflicts with  another  package.
	      This is dangerous, for it will usually cause overwriting of some

	      confmiss: Always install a missing configuration file.  This  is
	      dangerous,  since  it  means  not preserving a change (removing)
	      made to the file.

	      confnew: If a conffile has been modified always install the  new
	      version  without	prompting,  unless the --force-confdef is also
	      specified, in which case the default action is preferred.

	      confold: If a conffile has been modified	always	keep  the  old
	      version  without	prompting,  unless the --force-confdef is also
	      specified, in which case the default action is preferred.

	      confdef: If a conffile  has  been  modified  always  choose  the
	      default  action.	If  there is no default action it will stop to
	      ask the user unless --force-confnew or --force-confold  is  also
	      been  given,  in which case it will use that to decide the final

	      overwrite: Overwrite one package's file with another's file.

	      overwrite-dir Overwrite one package's directory  with  another's

	      overwrite-diverted: Overwrite a diverted file with an undiverted

	      architecture: Process even packages with the wrong architecture.

	      bad-path:  PATH  is  missing important programs, so problems are

	      not-root: Try to (de)install things even when not root.

	      Ignore dependency-checking  for  specified  packages  (actually,
	      checking	is  performed,	but  only warnings about conflicts are
	      given, nothing else).

       --new | --old
	      Select new or old binary package format. This is	a  dpkg-deb(1)

	      Don't  read  or  check contents of control file while building a
	      package.	This is a dpkg-deb(1) option.

	      Do everything which is supposed to be done, but don't write  any
	      changes.	This  is used to see what would happen with the specified
 action, without actually modifying anything.

	      Be sure to give --no-act before  the  action-parameter,  or  you
	      might  end up with undesirable results.  (e.g.  dpkg --purge foo
	      --no-act will first purge package foo  and  then	try  to  purge
	      package  --no-act, even though you probably expected it to actually
 do nothing)

       -R | --recursive
	      Recursively handle all  regular  files  matching	pattern  *.deb
	      found  at  specified  directories and all of its subdirectories.
	      This can be used with -i, -A, --install,	--unpack  and  --avail

       -G     Don't  install  a package if a newer version of the same package
	      is already installed. This is an alias of --refuse-downgrade.

       --root=dir | --admindir=dir | --instdir=dir
	      Change default directories.  admindir defaults to  /var/lib/dpkg
	      and  contains  many  files that give information about status of
	      installed or uninstalled packages, etc.  instdir defaults  to  /
	      and  refers to the directory where packages are to be installed.
	      instdir is also the directory passed to chroot(2) before running
	      package's installation scripts, which means that the scripts see
	      instdir as a root directory.  Changing root changes  instdir  to
	      dir and admindir to dir/var/lib/dpkg.

       -O | --selected-only
	      Only  process  the  packages that are selected for installation.
	      The actual marking is done with dselect or by dpkg, when it handles
  packages.  For example, when a package is removed, it will
	      be marked selected for installation.

       -E | --skip-same-version
	      Don't install the package if the same version of the package  is
	      already installed.

       --status-fd <n>
	      Send  package  status  info to file descriptor <n>.  This can be
	      given multiple times.  Status updates are of the	form  `status:
	      <pkg>: <pkg qstate>'.

FILES    [Toc]    [Back]

	      Configuration file with default options.

       The  other  files  listed  below  are in their default directories, see
       option --admindir to see how to change locations of these files.

	      List of available packages.

	      Statuses of available packages. This file  contains  information
	      about  whether  a package is marked for removing or not, whether
	      it is installed or not, etc. See section INFORMATION ABOUT PACK-
	      AGES for more info.

       The following files are components of a binary package.	See deb(5) for
       more information about them:








	      Define this to something if you prefer dpkg starting a new shell
	      rather than suspending itself, while doing a shell escape.

       SHELL  The program dpkg will execute while starting a new shell.

       COLUMNS    [Toc]    [Back]
	      Sets  the number of columns dpkg should use when displaying formatted
 text.  Currently only used by -l.

EXAMPLES    [Toc]    [Back]

       To list packages related to the editor vi:
	    dpkg -l '*vi*'

       To see the entries in /var/lib/dpkg/available on two packages:
	    dpkg --print-avail elvis vim | less

       To search the listing of packages yourself:
	    less /var/lib/dpkg/available

       To remove an installed elvis package:
	    dpkg -r elvis

       To install a package, you first need to find it in an archive or CDROM.
       The  "available"  file  shows  that the vim package is in section "editors":

	    cd /cdrom/hamm/hamm/binary/editors
	    dpkg -i vim_4.5-3.deb

       To make a local copy of the package selection states:
	    dpkg --get-selections >myselections

       You might transfer this file to another computer, and install it  there
	    dpkg --set-selections <myselections
       Note  that  this will not actually install or remove anything, but just
       set the selection state on the requested packages.  You will need  some
       other  application to actually download and install the requested packages.

       Ordinarily, you will find that dselect(8) provides  a  more  convenient
       way to modify the package selection states.

SEE ALSO    [Toc]    [Back]

       dselect(8), dpkg-deb(1), deb(5), and deb-control(5)

BUGS    [Toc]    [Back]

       --no-act usually gives less information than might be helpful.

AUTHORS    [Toc]    [Back]

       See /usr/share/doc/dpkg/THANKS for the list of people who have
       contributed to dpkg .

Debian Project			April 12, 1998			       DPKG(8)
[ Back ]
 Similar pages
Name OS Title
aptitude Linux high-level interface to the package manager.
deb Linux Debian binary package format
dpkg-source Linux Debian source package tools
dh_testdir Linux test directory before building debian package
deb-old Linux old style Debian binary package format
dpkg-deb Linux Debian package archive (.deb) manipulation tool
dselect Linux console Debian package handling frontend
dpkg-name Linux rename Debian packages to full package names
dpkg-split Linux Debian package archive split/join tool
dh_installmenu Linux install debian menu files into package build directories
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service