dpkg
This article needs additional citations for verification. (January 2013) |
Original author(s) | Ian Murdock |
---|---|
Developer(s) | Dpkg Developers |
Initial release | January 1994[1] |
Stable release | 1.18.25[2]
/ June 26, 2018 |
Preview release | 1.19.2[3]
/ October 8, 2018 |
Repository | |
Written in | C, C++, Perl[4] |
Operating system | Unix-like, POSIX |
Type | Package management system |
License | GNU General Public License |
Website | wiki |
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
(Debian Package) itself is a low level tool. APT (Advanced Packaging Tool), a higher level tool, is more commonly used than
dpkg
as it can fetch packages from remote locations and deal with complex package relations, such as dependency resolution. Frontends for APT like aptitude (ncurses) and synaptic (GTK+) are used for their friendlier interfaces.
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
.[5] 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[6] as it is now developed and distributed separately.[7] The Debian package "dpkg-dev" includes the numerous build tools described below.
History
dpkg was originally created by Ian Murdock in January 1994 as a Shell script,[1] Matt Welsh, Carl Streeter and Ian Murdock then rewrote it in Perl,[8] and then later the main part was rewritten in C by Ian Jackson in 1994.[9][10] 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 in Debian.
Example use
To install a .deb package:
dpkg -i filename.deb
where filename.deb is the name of the Debian package (such as pkgname_0.00-1_amd64.deb).
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.[11] 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.[12]
See also
- Advanced Packaging Tool
- Alien (file converter)
- Debian build toolchain
- RPM, for RedHat-derived systems
- opkg, for storage-constrained Linux installations.
- wpkg, for the Microsoft Windows operating system.
References
- ^ a b "dpkg Shell implementation". Dpkg Developers. Retrieved 2017-08-30.
- ^ http://metadata.ftp-master.debian.org/changelogs/main/d/dpkg/stable_changelog
- ^ http://metadata.ftp-master.debian.org/changelogs/main/d/dpkg/unstable_changelog
- ^ "dpkg on git.dpkg.org". Dpkg Developers. 2018-07-15. Retrieved 2018-07-15.
- ^ "dpkg package file list". Debian project. Retrieved 2015-03-09.
- ^ Jover, Guillem. "Removal of install-info from dpkg". Debian project. Retrieved 2015-03-09.
- ^ "GNU Texinfo project". GNU project. Retrieved 9 March 2015.
- ^ "dpkg perl implementation". git (Dpkg Developers). Retrieved 2015-03-09.
- ^ "dpkg C implementation". git (Dpkg Developers). Retrieved 2015-03-09.
- ^ Akkerman, Wichert. "dpkg history". Archived from the original on 2015-02-07. Retrieved 2017-08-29.
{{cite web}}
: Unknown parameter|deadurl=
ignored (|url-status=
suggested) (help) - ^ "dpkg-dev package file list". Debian project. Retrieved 2015-03-09.
- ^ "dpkg". Debian. 2012-06-05. Retrieved 2014-06-18.