dpkg

From Infogalactic: the planetary knowledge core
Jump to: navigation, search
dpkg
Original author(s) Ian Murdock
Developer(s) The dpkg team
Stable release 1.17.25[1] / April 9, 2015; 9 years ago (2015-04-09)
Preview release 1.18.4[2] / December 25, 2015; 8 years ago (2015-12-25)
Written in C, C++, Perl[3]
Operating system Unix-like, POSIX
Type Package management system
License GNU General Public License
Website wiki.debian.org/Teams/Dpkg

dpkg is the software at the base of the package management system in the free operating system Debian and its numerous derivatives. dpkg is used to install, remove, and provide information about .deb packages.

dpkg itself is a low level tool; higher level tools, such as APT, are used to fetch packages from remote locations or deal with complex package relations. Tools like aptitude or synaptic are more commonly used than dpkg on its own, as they have a more sophisticated way of dealing with package relationships and a friendlier interface.

The Debian package "dpkg" provides the dpkg program, as well as several other programs necessary for run-time functioning of the packaging system, including dpkg-deb, dpkg-split, dpkg-query, dpkg-statoverride, dpkg-divert and dpkg-trigger.[4] It also includes the programs such as update-alternatives and start-stop-daemon. The install-info program used to be included as well, but was later removed[5] as it is developed and distributed separately nowadays.[6] The Debian package "dpkg-dev" includes the numerous build tools described below.

History

dpkg was originally created by Matt Welsh, Carl Streeter and Ian Murdock, first as a Perl program,[7] and then later the main part was rewritten in C by Ian Jackson in 1994.[8][9] The name dpkg was originally the short for "Debian package", but the meaning of that phrase has evolved significantly, as dpkg the software is orthogonal to the deb package format as well as the Debian Policy Manual which defines how Debian packages behave.

Example use

To install a .deb package:

dpkg -i debFileName

where debFileName is the name of the Debian software package.

The list of installed packages can be obtained with:

dpkg -l [optional pattern]

To remove an installed package:

dpkg -r packagename

Development tools

dpkg-dev contains a series of development tools required to unpack, build and upload Debian source packages.[10] These include:

  • dpkg-source packs and unpacks the source files of a Debian package.
  • dpkg-gencontrol reads the information from an unpacked Debian tree source and generates a binary package control package, creating an entry for this in Debian/files.
  • dpkg-shlibdeps calculates the dependencies of runs with respect to libraries.
  • dpkg-genchanges reads the information from an unpacked Debian tree source that once constructed creates a control file (.changes).
  • dpkg-buildpackage is a control script that can be used to construct the package automatically.
  • dpkg-distaddfile adds a file input to debian/files.
  • dpkg-parsechangelog reads the changes file (changelog) of an unpacked Debian tree source and creates a conveniently prepared output with the information for those changes.

Database

The dpkg database is located under /var/lib/dpkg; the "status" file contains the list of installed software on the current system. There is no information about repositories in this database.[11]

See also

References

  1. http://metadata.ftp-master.debian.org/changelogs/main/d/dpkg/stable_changelog
  2. http://metadata.ftp-master.debian.org/changelogs/main/d/dpkg/unstable_changelog
  3. Lua error in package.lua at line 80: module 'strict' not found.
  4. Lua error in package.lua at line 80: module 'strict' not found.
  5. Lua error in package.lua at line 80: module 'strict' not found.
  6. Lua error in package.lua at line 80: module 'strict' not found.
  7. Lua error in package.lua at line 80: module 'strict' not found.
  8. Lua error in package.lua at line 80: module 'strict' not found.
  9. Lua error in package.lua at line 80: module 'strict' not found.
  10. Lua error in package.lua at line 80: module 'strict' not found.
  11. Lua error in package.lua at line 80: module 'strict' not found.

External links