Content deleted Content added
m Disambiguating links to Fink (link changed to Fink (software)) using DisamAssist. |
GreenC bot (talk | contribs) Reformat 2 URLs (Wayback Medic 2.5) |
||
(47 intermediate revisions by 35 users not shown) | |||
Line 1:
{{
{{lowercase title}}
{{Infobox file format
| name = Debian package
Line 5 ⟶ 6:
| logo =
| screenshot = [[File:Application-x-deb.svg|64px]]
| caption = The [[GNOME]] icon for deb files.<br />(Showing the [[Debian]] logo on a package)
| extension = .deb, .udeb
| mime = application/vnd.debian.binary-package<ref>{{cite web
| title = Media Type Registration for vnd.debian.binary-package | url = | publisher = [[Internet Assigned Numbers Authority]] | | type code =
| uniform type =
Line 24 ⟶ 29:
}}
'''deb''' is the format, as well as [[filename
==
[[File:Gdebi.png|thumb|right|GDebi installing a .deb package]]
Debian packages are standard [[Unix]] [[ar (Unix)|ar archives]] that include two [[tar (
[[dpkg]] provides the basic functionality for installing and manipulating Debian packages. Generally end users don't manage packages directly with [[dpkg]] but instead use the [[
Debian packages can be converted into other package formats and vice versa using [[Alien (file converter)|alien]], and created from source code using [[checkinstall]] or the Debian Package Maker.<ref>{{cite web|url=https://www.debian.org/doc/manuals/developers-reference/apa.en.html#alien|title=Overview of Debian Maintainer Tools / Alien|author=<!--Staff writers; no by-line.-->|date=n.d.|website=debian.org|access-date=26 Aug 2016}}</ref>
Some core Debian packages are available as '''udeb'''s ("micro debs"), and are typically used only for bootstrapping a Debian installation. Although these files use the ''udeb'' filename extension, they adhere to the same structure specification as ordinary ''deb'' files. However, unlike their ''deb'' counterparts, ''udeb'' packages contain only essential functional files.<ref>{{cite web|url=http://d-i.alioth.debian.org/doc/internals/ch03.html|title=Chapter 3. D-I components or udebs|author=<!--Staff writers; no by-line.-->|date=n.d.|website=debian.org|access-date=26 Aug 2016|archive-url=https://web.archive.org/web/20111203083145/http://d-i.alioth.debian.org/doc/internals/ch03.html|archive-date=3 December 2011|url-status=dead}}</ref> In particular, documentation files are normally omitted. ''udeb'' packages are not installable on a standard Debian system, but are used in [[Debian-Installer]].
==
[[File:Deb File Structure.svg|thumb|Diagram showing an example file structure of a .deb file|right]][[File:Frhed hex editor displaying deb package.png|thumb|[[Frhed|Frhed hex editor]] displaying the raw data of a Debian package.|right]]
Prior to Debian 0.93 a package consisted of a file header and two concatenated [[gzip]] archives.<ref>{{cite web|url=https://manpages.debian.org/unstable/deb-old.5|title=deb-old(5) man page: Debian old binary package format|website=manpages.debian.org|access-date=2017-04-23}}</ref> Since Debian 0.93, a deb package is implemented as an [[Ar (Unix)|ar archive]].<ref>{{cite web|url=https://www.debian.org/doc/manuals/packaging-tutorial/packaging-tutorial.en.pdf#page=7|title=Debian Packaging Tutorial|author=Lucas Nussbaum|date=16 Oct 2014|website=debian.org|access-date=26 Aug 2016}}</ref> This archive contains three files in a specific order:<ref name="manpagedeb5">{{Cite web|url=https://manpages.debian.org/unstable/deb.5|title=deb(5) man page: Debian binary package format|website=manpages.debian.org|access-date=2017-04-23}}</ref><ref name="tldp001">{{cite web|url=http://www.tldp.org/HOWTO/Debian-Binary-Package-Building-HOWTO/x60.html|title=Debian Binary Package Building HOWTO/3. Package Structure|author=<!--Staff writers; no by-line.-->|date=n.d.|website=tldp.org|access-date=26 Aug 2016}}</ref>▼
▲Prior to Debian 0.93, a package consisted of a file header and two concatenated [[gzip]] archives.<ref>{{cite web|url=https://manpages.debian.org/unstable/deb-old.5|title=deb-old(5) man page: Debian old binary package format|website=manpages.debian.org|access-date=2017-04-23}}</ref> Since Debian 0.93, a deb package is implemented as an [[Ar (Unix)|ar archive]].<ref>{{cite web|url=https://www.debian.org/doc/manuals/packaging-tutorial/packaging-tutorial.en.pdf#page=7|title=Debian Packaging Tutorial|author=Lucas Nussbaum|date=16 Oct 2014|website=debian.org|access-date=26 Aug 2016}}</ref> This archive contains three files in a specific order:<ref name="manpagedeb5">{{
# '''debian-binary''' - A text file named <code>debian-binary</code> containing a single line giving the package format version number. (<code>2.0</code> for current versions of Debian).<ref name="tldp001"/>
# '''control archive''' - A tar archive named <code>control.tar</code> contains the maintainer scripts and the package meta-information (package name, version, dependencies and maintainer). Compressing the archive with [[gzip]] or [[XZ Utils|xz]] and [[zstd]] is supported. The file extension changes to indicate the compression method.<ref name="tldp001"/><ref name="rh20100917"/> # '''data archive''' - A tar archive named <code>data.tar</code> contains the actual installable files. Compressing the archive with [[gzip]], [[bzip2]], [[lzma]] or [[XZ Utils|xz]] and [[zstd]] is supported. The file extension changes to indicate the compression method.<ref name="tldp001"/><ref name="rh20100917"/>
===Control archive===
Line 49 ⟶ 54:
* '''control''' contains a brief description of the package as well as other information such as its dependencies.<ref>{{cite web|url=https://manpages.debian.org/unstable/deb-control.5|title=deb-control(5) man page: Debian packages' master control file format|author=<!--Staff writers; no by-line.-->|website=manpages.debian.org|access-date=2017-04-23}}</ref><ref>{{cite web|url=https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-binarycontrolfiles|title=Debian Policy Manual Chapter 5 - Control files and their fields|author=<!--Staff writers; no by-line.-->|date=30 Mar 2016|website=debian.org|access-date=26 Aug 2016}}</ref><ref>{{cite web|url=https://www.debian.org/doc/manuals/maint-guide/dreq.en.html#control|title=Debian New Maintainers' Guide - Ch4 Required files under the debian directory|author=Josip Rodin and Osamu Aoki|date=9 Jun 2015|website=debian.org|access-date=26 Aug 2016}}</ref><ref>{{cite web|url=https://www.debian.org/doc/debian-policy/ch-relationships.html#s-binarydeps|title=Debian Policy Manual Ch7 - Declaring relationships between packages|author=<!--Staff writers; no by-line.-->|date=30 Mar 2016|website=debian.org|access-date=26 Aug 2016}}</ref>
* '''md5sums''' contains [[MD5]] [[checksum]]s of all files in the package in order to detect corrupt or incomplete files.<ref>{{cite web|url=https://debian-handbook.info/browse/stable/sect.package-meta-information.html|title=The Debian Administrator's Handbook - Package Meta-Information|author=<!--Staff writers; no by-line.-->|date=n.d.|website=debian-handbook.info|access-date=26 Aug 2016}}</ref>
* '''conffiles'''
* '''preinst''', '''postinst''', '''prerm''' and '''postrm''' are optional scripts that are executed before or after installing or removing the package.<ref name="debian-faq-7"/><ref>{{cite web|url=https://wiki.debian.org/MaintainerScripts|title=Debian Maintainer Scripts|author=<!--Staff writers; no by-line.-->|date=11 Oct 2012|website=debian.org|access-date=26 Aug 2016}}</ref>
* '''config''' is an optional script that supports the [[debconf (software package)|debconf]] configuration mechanism.<ref>{{cite web|url=http://www.fifi.org/doc/debconf-doc/tutorial.html#AEN113|title=The Debconf Programmer's Tutorial - The Config Script|author=Joey Hess|date=n.d.|website=fifi.org|access-date=26 Aug 2016}}</ref>
* '''shlibs'''
===Signed packages===
Debian-based distributions support [[
==
* Debian packages are used in distributions [[List of Linux distributions#Debian-based|based on Debian]], such as, [[Linux Mint]] (LMDE),<ref>{{Cite web |last=Kumar |first=Sarvottam |date=2020-07-03 |title=Linux Mint 20 "Ulyana" Review: The Most Complete OS For Everyone |url=https://fossbytes.com/linux-mint-20-ulyana-review/ |url-status=live |archive-url=https://archive.today/20240515203221/https://fossbytes.com/linux-mint-20-ulyana-review/ |archive-date=2024-05-15 |access-date=2024-05-15 |website=Fossbytes |language=en-US}}</ref><ref>{{Cite web |last=Saive |first=Ravi |date=2022-12-12 |title=3 Ways to Install Deb Packages in Ubuntu, Mint & Debian |url=https://www.ubuntumint.com/install-deb-files-ubuntu-mint-debian/ |url-status=live |archive-url=https://archive.today/20240515203108/https://www.ubuntumint.com/install-deb-files-ubuntu-mint-debian/ |archive-date=2024-05-15 |access-date=2024-05-15 |website=www.ubuntumint.com |language=en-US}}</ref> [[KDE neon]], [[Ubuntu (operating system)|Ubuntu]] and [[List of Linux distributions#Debian-based|many others]].
* [[Fink (software)|Fink]], a port of [[dpkg]] and [[Advanced Packaging Tool|APT]] to [[
* [[Nexenta OS]], a discontinued OS based on [[OpenSolaris]], included Debian package management software and the use of deb packages.
* [[Debian GNU/kFreeBSD]],
* [[Debian GNU/Hurd]].
* Some [[
* [[Ipkg]] and [[Opkg]], which both use .ipk packages that resemble [[Debian]]'s [[dpkg]]
* [[Termux]], which is a [[GNU]] environment for [[Android (operating system)|Android]].
== See also ==▼
* [[List of archive formats]]
* [[dpkg]]
Line 72 ⟶ 80:
* [[List of software package management systems]]
==
{{Reflist|2}}
==
* [
* [
* [https://wiki.debian.org/Teams/Dpkg/DebSupport .deb feature support]
* [https://web.archive.org/web/20160307164024/https://lists.debian.org/debian-user/2001/07/msg00645.html Manipulating debs directly with standard utilities]
|