# Dpkg

> Mediated Wiki article. Canonical URL: https://mediated.wiki/source/Dpkg
> Markdown URL: https://mediated.wiki/source/Dpkg.md
> Source: https://en.wikipedia.org/wiki/Dpkg
> Source revision: 1354812123
> License: Creative Commons Attribution-ShareAlike 4.0 International (https://creativecommons.org/licenses/by-sa/4.0/)

{{Short description|Package management system}}
{{Tone|date=January 2025}}
{{lowercase title}}

{{Infobox software
| title = dpkg
| logo = Dpkg-logo.png
| logo caption = 
| logo size = 200px
| logo alt = 
| screenshot = <!-- File name only -->
| caption = 
| screenshot size = 
| screenshot alt = 
| collapsible = 
| author = [Ian Murdock](/source/Ian_Murdock)
| developer = The [Debian](/source/Debian) Project
| released = {{Start date and age|1994|01|df=yes}}<ref name="first-release"/>
| discontinued = 
| latest release version = {{wikidata|property|preferred|references|edit|Q305892|P348|P548=Q2804309}}
| latest release date = {{Start date and age|{{wikidata|qualifier|preferred|single|Q305892|P348|P548=Q2804309|P577}}|df=yes}}
| latest preview version = {{wikidata|property|preferred|references|edit|Q305892|P348|P548=Q3295609}}
| latest preview date = {{Start date and age|{{wikidata|qualifier|preferred|single|Q305892|P348|P548=Q3295609|P577}}|df=yes}}
| programming language = [C](/source/C_(programming_language)), [C++](/source/C%2B%2B), [Perl](/source/Perl)<ref>{{cite web
 |url=https://git.dpkg.org/cgit/dpkg/dpkg.git
 |title=dpkg on git.dpkg.org
 |publisher=Dpkg Developers
 |date=2018-07-15
 |access-date=2018-07-15}}</ref>
| operating system = [Unix-like](/source/Unix-like)
| platform = 
| size = 
| language = 
| language count = 42
| language footnote = <ref>{{cite web |url=https://git.dpkg.org/cgit/dpkg/dpkg.git/tree/po/LINGUAS |title=po/LINGUAS |publisher=Dpkg Developers |date=2022-11-22}}</ref>
| genre = [Package manager](/source/Package_manager)
| license = [GPL](/source/GNU_General_Public_License)v2
| alexa = 
| standard = 
| AsOf = 
}}

'''dpkg''' is the [software](/source/software) at the base of the package management system in the [free](/source/free_software) operating system [Debian](/source/Debian) and its many [derivatives](/source/Debian_family). <code>dpkg</code> is used to install, remove, and provide information about [.deb](/source/deb_(file_format)) [packages](/source/Package_manager).

<code>dpkg</code> (Debian Package) itself is a low-level tool. Advanced Package Tool ([APT](/source/APT_(software))), a higher-level tool, is more commonly used than <code>dpkg</code> as it can fetch packages from remote locations and deal with complex package relations, such as dependency resolution. Frontends for APT, like [aptitude](/source/aptitude_(software)) ([ncurses](/source/ncurses)) and [synaptic](/source/synaptic_(software)) ([GTK](/source/GTK)), are used for their friendlier interfaces.

The Debian package ''dpkg'' provides the <code>dpkg</code> program, and several other programs needed for [runtime](/source/Execution_(computing)) functioning of the packaging system, including <code>dpkg-deb</code>, <code>dpkg-split</code>, <code>dpkg-query</code>, <code>dpkg-statoverride</code>, <code>dpkg-divert</code> and <code>dpkg-trigger</code>.<ref>{{cite web|title=dpkg package file list|url=https://packages.debian.org/sid/amd64/dpkg/filelist|publisher=Debian project|access-date=2015-03-09}}</ref> It also includes the programs such as <code>update-alternatives</code> and <code>start-stop-daemon</code>. The Debian package "dpkg-dev" includes the many build tools described below.

==History==
The first attempt at a package management system for Linux was possibly the development of Stop[Alop](/source/alopecia) by Greg Wettstein at the Roger Maris Cancer Center in Fargo, North Dakota. It provided inspiration to create dpkg.<ref>{{cite magazine| url=https://linuxjournal.com/article/2804 |title=Linux in the Trenches|magazine=Linux Journal}}</ref><ref>[https://www.dpkg.org/history/ancient/README The dpkg shell implementation]</ref><ref>{{cite web |url=http://www.verycomputer.com/195_d4343843af185e14_1.htm |title=StopAlop 0.6 packaging/Installation facility available}}</ref>
dpkg was originally created by [Ian Murdock](/source/Ian_Murdock) in January 1994 as a [Shell script](/source/Shell_script).<ref name="first-release">{{cite web|title=dpkg Shell implementation|url=https://www.dpkg.org/history/ancient/README|publisher=Dpkg Developers|access-date=2017-08-30}}</ref> [Matt Welsh](/source/Matt_Welsh_(computer_scientist)), Carl Streeter and Ian Murdock then rewrote it in [Perl](/source/Perl),<ref>{{cite web|title=dpkg perl implementation|url=https://git.dpkg.org/cgit/dpkg/dpkg.git/plain/scripts/perl-dpkg.pl?id=1b80fb16c22db72457d7a456ffbf1f70a8dfc0a5|publisher=git (Dpkg Developers)|access-date=2015-03-09}}</ref> and then later the main part was rewritten in [C](/source/C_(programming_language)) by [Ian Jackson](/source/Ian_Jackson_(computer_programmer)) in 1994.<ref>{{cite web|title=dpkg C implementation|url=https://git.dpkg.org/cgit/dpkg/dpkg.git/plain/main/main.c?id=1b80fb16c22db72457d7a456ffbf1f70a8dfc0a5|publisher=git (Dpkg Developers)|access-date=2015-03-09}}</ref><ref>{{cite web|last1=Akkerman|first1=Wichert|year=2001|title=dpkg history|url=http://www.wiggy.net/presentations/2001/DpkgEvolution/html/mgp00005.html|access-date=2017-08-29|url-status=dead|archive-url=https://web.archive.org/web/20150207151202/http://www.wiggy.net/presentations/2001/DpkgEvolution/html/mgp00005.html|archive-date=2015-02-07}}</ref> The name ''dpkg'' was originally a shortening of ''Debian package'', but the meaning of that phrase has evolved significantly, as dpkg the software is orthogonal to the [deb package format](/source/deb_(file_format)) and the Debian Policy Manual which defines how Debian packages behave in Debian.

==Development tools==
dpkg-dev contains a series of development tools needed to unpack, build, and upload Debian [source code](/source/source_code) packages.<ref>{{cite web|title=dpkg-dev package file list|url=https://packages.debian.org/sid/amd64/dpkg-dev/filelist|publisher=Debian project|access-date=2015-03-09}}</ref> 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.

==dselect==

The dpkg source package also contains ''dselect'', a frontend software.<ref>{{cite book |last1=Siever |first1=Ellen |year=2005 |display-authors=etal |url=https://books.google.com/books?id=uwNVAgAAQBAJ&pg=PA620 |title=Linux in a Nutshell |publisher=O'Reilly |isbn=9780596529499 |page=620}}</ref>

==install-info==

The <code>install-info</code> program used to be included in the dpkg software package, but was later removed<ref>{{cite web|last1=Jover|first1=Guillem|date=May 2013|title=Removal of install-info from dpkg|url=https://lists.debian.org/debian-devel/2013/05/msg00243.html|publisher=Debian project|access-date=2015-03-09}}</ref> as it became developed and distributed separately, as part of [GNU Texinfo](/source/GNU_Texinfo).<ref>{{cite web|title=GNU Texinfo project|url=https://www.gnu.org/software/texinfo/|publisher=GNU project|access-date=9 March 2015}}</ref>

=={{Anchor|wpkg}}wpkg==

''wpkg'' was created as a dpkg look-alike that would run under the [Microsoft Windows](/source/Microsoft_Windows) operating system.<ref name="Fox-book"/> It retained [.deb](/source/.deb) file format compatibility.<ref name="wpkg-home">{{cite web|url=https://unigw.sourceforge.net/|title=A Unix Packager For MS-Windows Systems|publisher=Alexis Wilke |access-date=2018-11-05}}</ref> It subsequently evolved to include functionality similar to parts of the [APT](/source/APT_(software)) suite, improved repository management, distribution management and was ported to [Linux](/source/Linux) and [Unix-like](/source/Unix-like) systems.<ref name="wpkg-doc-build">{{cite web|url=https://unigw.sourceforge.net/documentation/build-system-wpkg.html|title=A Build System with wpkg|publisher=Alexis Wilke |date=2013-11-06|access-date=2013-08-28}}</ref><ref name="wpkg-doc-repo">{{cite web|url=https://unigw.sourceforge.net/documentation/wpkg/wpkg-repository.html|title=wpkg --repository ...|publisher=Alexis Wilke |date=2012-12-05|access-date=2013-08-28}}</ref> {{As of|March 2024}}, the most recent release of the software was in 2015.<ref name="wpkg-doc-build"/>

==See also==
{{Portal|Linux|Free and open-source software}}
* [Alien (file converter)](/source/Alien_(file_converter))
* Advanced Package Tool ([APT (software)](/source/APT_(software)))
* [Deb (file format)](/source/Deb_(file_format))
* [Debian build toolchain](/source/Debian_build_toolchain)
* [Package manager](/source/Package_manager)
* [RPM Package Manager](/source/RPM_Package_Manager) (RPM), for [Red Hat Linux](/source/Red_Hat_Linux)-derived systems
* [List of installation software](/source/List_of_installation_software)
* [List of software package management systems](/source/List_of_software_package_management_systems)

==References==
{{Reflist|2|refs=
<ref name="Fox-book">{{cite book
 |last1=Fox
 |first1=Richard
 |date=7 October 2014
 |title=Linux with Operating System Concepts
 |section=13.4.3: APT
 |page=544
 |publisher=Routledge
 |isbn=978-1482235890}}</ref>
}}

==External links==
* [https://manpages.debian.org/dpkg.1 Manual page on the Debian Project website]
* [https://lists.debian.org/debian-dpkg/ Mailing list]
* [https://unigw.sourceforge.net/documentation/wpkg.html wpkg manual page]

{{Package management systems}}
{{Debian}}

Category:Dpkg
Category:Free software programmed in C
Category:Software using the GNU General Public License

---
Adapted from the Wikipedia article [Dpkg](https://en.wikipedia.org/wiki/Dpkg) by Wikipedia contributors ([contributor history](https://en.wikipedia.org/wiki/Dpkg?action=history)). Available under [Creative Commons Attribution-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-sa/4.0/). Changes may have been made.
