dpkg (1.18.25) stretch; urgency=medium
[dpkg] / man / deb.man
CommitLineData
1479465f
GJ
1.\" dpkg manual page - deb(5)
2.\"
3.\" Copyright © 1995 Raul Miller
4.\" Copyright © 1996 Ian Jackson <ijackson@chiark.greenend.org.uk>
5.\" Copyright © 2000 Wichert Akkerman <wakkerma@debian.org>
6.\" Copyright © 2006-2017 Guillem Jover <guillem@debian.org>
7.\"
8.\" This is free software; you can redistribute it and/or modify
9.\" it under the terms of the GNU General Public License as published by
10.\" the Free Software Foundation; either version 2 of the License, or
11.\" (at your option) any later version.
12.\"
13.\" This is distributed in the hope that it will be useful,
14.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
15.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16.\" GNU General Public License for more details.
17.\"
18.\" You should have received a copy of the GNU General Public License
19.\" along with this program. If not, see <https://www.gnu.org/licenses/>.
20.
21.TH deb 5 "%RELEASE_DATE%" "%VERSION%" "dpkg suite"
22.nh
23.SH NAME
24deb \- Debian binary package format
25.SH SYNOPSIS
26.IB filename .deb
27.SH DESCRIPTION
28The
29.B .deb
30format is the Debian binary package file format. It is understood
31since dpkg 0.93.76, and is generated by default since dpkg 1.2.0 and
321.1.1elf (i386/ELF builds).
33.PP
34The format described here is used since Debian 0.93; details of the
35old format are described in
36.BR deb\-old (5).
37.SH FORMAT
38The file is an
39.B ar
40archive with a magic value of
41.BR !<arch> .
42Only the common \fBar\fP archive format is supported, with no long file
43name extensions, but with file names containing an optional trailing
44slash, which limits their length to 15 characters (from the 16 allowed).
45File sizes are limited to 10 ASCII decimal digits, allowing for up to
46approximately 9536.74 MiB member files.
47.PP
48The \fBtar\fP archives currently allowed are, the old-style (v7) format,
49the pre-POSIX ustar format, a subset of the GNU format (new style long
50pathnames and long linknames, supported since dpkg 1.4.1.17; large file
51metadata since dpkg 1.18.24),
52and the POSIX ustar format (long names supported since dpkg 1.15.0).
53Unrecognized tar typeflags are considered an error.
54Each tar entry size inside a tar archive is limited to 11 ASCII octal
55digits, allowing for up to 8 GiB tar entries.
56The GNU large file metadata support permits 95-bit tar entry sizes and
57negative timestamps, and 63-bit UID, GID and device numbers.
58.PP
59The first member is named
60.B debian\-binary
61and contains a series of lines, separated by newlines. Currently only
62one line is present, the format version number,
63.BR 2.0
64at the time this manual page was written.
65Programs which read new-format archives should be prepared for the
66minor number to be increased and new lines to be present, and should
67ignore these if this is the case.
68.PP
69If the major number has changed, an incompatible change has been made
70and the program should stop. If it has not, then the program should
71be able to safely continue, unless it encounters an unexpected member
72in the archive (except at the end), as described below.
73.PP
74The second required member is named
75.BR control.tar .
76It is a tar archive containing the package control information, either
77not compressed (supported since dpkg 1.17.6), or compressed with
78gzip (with \fB.gz\fP extension) or
79xz (with \fB.xz\fP extension, supported since 1.17.6),
80as a series of plain files, of which the file
81.B control
82is mandatory and contains the core control information, the
83.BR conffiles ", " triggers ", " shlibs
84and
85.B symbols
86files contain optional control information, and the
87.BR preinst ", " postinst ", " prerm
88and
89.B postrm
90files are optional maintainer scripts.
91The control tarball may optionally contain an entry for
92.RB ‘ . ’,
93the current directory.
94.PP
95The third, last required member is named
96.BR data.tar .
97It contains the filesystem as a tar archive, either
98not compressed (supported since dpkg 1.10.24), or compressed with
99gzip (with \fB.gz\fP extension),
100xz (with \fB.xz\fP extension, supported since dpkg 1.15.6),
101bzip2 (with \fB.bz2\fP extension, supported since dpkg 1.10.24) or
102lzma (with \fB.lzma\fP extension, supported since dpkg 1.13.25).
103.PP
104These members must occur in this exact order. Current implementations
105should ignore any additional members after
106.BR data.tar .
107Further members may be defined in the future, and (if possible) will be
108placed after these three. Any additional members that may need to be
109inserted after
110.B debian\-binary
111and before
112.B control.tar
113or
114.B data.tar
115and which should be safely ignored by older programs, will have names
116starting with an underscore,
117.RB ‘ _ ’.
118.PP
119Those new members which won't be able to be safely ignored will be
120inserted before
121.B data.tar
122with names starting with something other than underscores, or will
123(more likely) cause the major version number to be increased.
124.SH MEDIA TYPE
125.SS Current
126application/vnd.debian.binary-package
127.SS Deprecated
128application/x-debian-package
129.br
130application/x-deb
131.SH SEE ALSO
132.BR deb\-old (5),
133.BR dpkg\-deb (1),
134.BR deb\-control (5),
135.BR deb\-conffiles (5)
136.BR deb\-triggers (5),
137.BR deb\-shlibs (5),
138.BR deb\-symbols (5),
139.BR deb\-preinst (5),
140.BR deb\-postinst (5),
141.BR deb\-prerm (5),
142.BR deb\-postrm (5).