Dpkg: Difference between revisions
imported>Rodw m Disambiguating links to Ian Jackson (link changed to Ian Jackson (computer programmer)) using DisamAssist. |
imported>Xose.vazquez →External links: URLs already in the template , and taken from wikidata |
||
| (2 intermediate revisions by 2 users not shown) | |||
| Line 3: | Line 3: | ||
{{lowercase title}} | {{lowercase title}} | ||
{{Infobox software | {{Infobox software | ||
| title = dpkg | | title = dpkg | ||
| logo = <!-- | | logo = <!-- File name only --> | ||
| logo caption = | | logo caption = | ||
| | | logo size = | ||
| | | logo alt = | ||
| screenshot = <!-- | | screenshot = <!-- File name only --> | ||
| caption = | | caption = | ||
| | | screenshot size = | ||
| | | screenshot alt = | ||
| collapsible = | | collapsible = | ||
| author = [[Ian Murdock]] | | author = [[Ian Murdock]] | ||
| developer = The [[Debian]] Project | | developer = The [[Debian]] Project | ||
| released = {{Start date and age|1994|01|df=yes}}<ref name="first-release" /> | | released = {{Start date and age|1994|01|df=yes}}<ref name="first-release"/> | ||
| discontinued = | | discontinued = | ||
| latest release version = {{wikidata|property|preferred|references|edit|Q305892|P348|P548=Q2804309}} | | latest release version = {{wikidata|property|preferred|references|edit|Q305892|P348|P548=Q2804309}} | ||
| latest release date = {{wikidata|qualifier|preferred|single|Q305892|P348|P548=Q2804309|P577}} | | 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 version = {{wikidata|property|preferred|references|edit|Q305892|P348|P548=Q3295609}} | ||
| latest preview date = {{wikidata|qualifier|preferred|single|Q305892|P348|P548=Q3295609|P577}} | | latest preview date = {{Start date and age|{{wikidata|qualifier|preferred|single|Q305892|P348|P548=Q3295609|P577}}|df=yes}} | ||
| programming language = [[C (programming language)|C]], [[C++]], [[Perl]]<ref>{{cite web | | programming language = [[C (programming language)|C]], [[C++]], [[Perl]]<ref>{{cite web | ||
| url | |url=https://git.dpkg.org/cgit/dpkg/dpkg.git | ||
| title | |title=dpkg on git.dpkg.org | ||
| publisher | |publisher=Dpkg Developers | ||
| date | |date=2018-07-15 | ||
| access-date = 2018-07-15}}</ref> | |access-date=2018-07-15}}</ref> | ||
| operating system = [[Unix-like]] | | operating system = [[Unix-like]] | ||
| platform = | | platform = | ||
| Line 33: | Line 32: | ||
| language = | | language = | ||
| language count = 42 | | 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> | | 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]] | | genre = [[Package manager]] | ||
| license = [[GNU General Public License|GPL]]v2 | | license = [[GNU General Public License|GPL]]v2 | ||
| alexa = | | alexa = | ||
| standard = | | standard = | ||
| AsOf = | | AsOf = | ||
}} | }} | ||
'''dpkg''' is the [[software]] at the base of the package management system in the [[free software|free]] operating system [[Debian]] and its | '''dpkg''' is the [[software]] at the base of the package management system in the [[free software|free]] operating system [[Debian]] and its many [[Debian family|derivatives]]. <code>dpkg</code> is used to install, remove, and provide information about [[deb (file format)|.deb]] [[Package manager|packages]]. | ||
<code>dpkg</code> (Debian Package) itself is a low-level tool. [[APT ( | <code>dpkg</code> (Debian Package) itself is a low-level tool. Advanced Package Tool ([[APT (software)|APT]]), 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 (software)|aptitude]] ([[ncurses]]) and [[synaptic (software)|synaptic]] ([[GTK]]), are used for their friendlier interfaces. | ||
The Debian package | The Debian package ''dpkg'' provides the <code>dpkg</code> program, and several other programs needed for [[Execution (computing)#Runtime|runtime]] 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== | ==History== | ||
The first attempt at a package management system for Linux was possibly the development of Stop[[alopecia|Alop]] by Greg Wettstein at the Roger Maris Cancer Center in Fargo, North Dakota. It provided inspiration | The first attempt at a package management system for Linux was possibly the development of Stop[[alopecia|Alop]] 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]] in January 1994 as a [[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 (computer scientist)|Matt Welsh]], Carl Streeter and [[Ian Murdock]] then rewrote it in [[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 (programming language)|C]] by [[Ian Jackson (computer programmer)|Ian Jackson]] 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| | dpkg was originally created by [[Ian Murdock]] in January 1994 as a [[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 (computer scientist)|Matt Welsh]], Carl Streeter and [[Ian Murdock]] then rewrote it in [[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 (programming language)|C]] by [[Ian Jackson (computer programmer)|Ian Jackson]] 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 (file format)|deb package format]] and the Debian Policy Manual which defines how Debian packages behave in Debian. | ||
==Development tools== | ==Development tools== | ||
dpkg-dev contains a series of development tools | dpkg-dev contains a series of development tools needed to unpack, build, and upload Debian [[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== | ==dselect== | ||
The dpkg source package also contains | 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== | ==install-info== | ||
The <code>install-info</code> program used to be included in the dpkg software package, but was later removed<ref>{{cite web| | 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]].<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== | =={{Anchor|wpkg}}wpkg== | ||
''wpkg'' was created as a dpkg look-alike that would run under the [[Microsoft Windows]] operating system.<ref name="Fox-book"/> It retained [[.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 (software)|APT]] suite, improved repository management, distribution management and was ported to [[Linux]] and [[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== | ==See also== | ||
{{Portal|Free and open-source software}} | {{Portal|Free and open-source software}} | ||
* [[Alien (file converter)]] | * [[Alien (file converter)]] | ||
* Advanced Package Tool ([[APT (software)]]) | |||
* [[Deb (file format)]] | |||
* [[Debian build toolchain]] | * [[Debian build toolchain]] | ||
* [[Package manager]] | * [[Package manager]] | ||
* [[RPM Package Manager]] (RPM), for [[Red Hat Linux]]-derived systems | |||
* [[List of installation software]] | * [[List of installation software]] | ||
* [[List of software package management systems]] | |||
==References== | ==References== | ||
{{Reflist|2|refs= | {{Reflist|2|refs= | ||
<ref name="Fox-book">{{cite book | <ref name="Fox-book">{{cite book | ||
| title | |last1=Fox | ||
| | |first1=Richard | ||
| | |date=7 October 2014 | ||
|title=Linux with Operating System Concepts | |||
| publisher = Routledge | |section=13.4.3: APT | ||
| isbn | |page=544 | ||
|publisher=Routledge | |||
|isbn=978-1482235890}}</ref> | |||
}} | }} | ||
==External links== | ==External links== | ||
* [https://manpages.debian.org/dpkg.1 Manual page on the Debian Project website] | * [https://manpages.debian.org/dpkg.1 Manual page on the Debian Project website] | ||
* [https://lists.debian.org/debian-dpkg/ Mailing list] | * [https://lists.debian.org/debian-dpkg/ Mailing list] | ||
Latest revision as of 15:46, 18 December 2025
Template:Short description Script error: No such module "Unsubst".
Script error: No such module "Infobox".Template:Template other Script error: No such module "Check for unknown parameters".Script error: No such module "Check for conflicting parameters".
dpkg is the software at the base of the package management system in the free operating system Debian and its many derivatives. dpkg is used to install, remove, and provide information about .deb packages.
dpkg (Debian Package) itself is a low-level tool. Advanced Package Tool (APT), 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, and several other programs needed for runtime functioning of the packaging system, including dpkg-deb, dpkg-split, dpkg-query, dpkg-statoverride, dpkg-divert and dpkg-trigger.[1] It also includes the programs such as update-alternatives and start-stop-daemon. 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 StopAlop by Greg Wettstein at the Roger Maris Cancer Center in Fargo, North Dakota. It provided inspiration to create dpkg.[2][3][4] dpkg was originally created by Ian Murdock in January 1994 as a Shell script.[5] Matt Welsh, Carl Streeter and Ian Murdock then rewrote it in Perl,[6] and then later the main part was rewritten in C by Ian Jackson in 1994.[7][8] 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 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 packages.[9] 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.[10]
install-info
The install-info program used to be included in the dpkg software package, but was later removed[11] as it became developed and distributed separately, as part of GNU Texinfo.[12]
Script error: No such module "anchor".wpkg
wpkg was created as a dpkg look-alike that would run under the Microsoft Windows operating system.[13] It retained .deb file format compatibility.[14] It subsequently evolved to include functionality similar to parts of the APT suite, improved repository management, distribution management and was ported to Linux and Unix-like systems.[15][16] since March 2024[update]Template:Dated maintenance category (articles)Script error: No such module "Check for unknown parameters"., the most recent release of the software was in 2015.[15]
See also
Script error: No such module "Portal".
- Alien (file converter)
- Advanced Package Tool (APT (software))
- Deb (file format)
- Debian build toolchain
- Package manager
- RPM Package Manager (RPM), for Red Hat Linux-derived systems
- List of installation software
- List of software package management systems
References
<templatestyles src="Reflist/styles.css" />
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "Citation/CS1".
- ↑ The dpkg shell implementation
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ a b Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
Script error: No such module "Check for unknown parameters".
External links
Template:Package management systems Script error: No such module "Navbox".