| .TH deb 5 "2011-08-14" "Debian Project" "Debian" |
| .SH NAME |
| deb \- Debian binary package format |
| .SH SYNOPSIS |
| .IB filename .deb |
| .SH DESCRIPTION |
| The |
| .B .deb |
| format is the Debian binary package file format. It is understood by |
| dpkg 0.93.76 and later, and is generated by default by all versions |
| of dpkg since 1.2.0 and all i386/ELF versions since 1.1.1elf. |
| .PP |
| The format described here is used since Debian 0.93; details of the |
| old format are described in |
| .BR deb\-old (5). |
| .SH FORMAT |
| The file is an |
| .B ar |
| archive with a magic value of |
| .BR !<arch> . |
| The file names might contain a trailing slash. |
| .PP |
| The \fBtar\fP archives currently allowed are, the old-style (v7) format, |
| the pre-POSIX ustar format, a subset of the GNU format (only the new |
| style long pathnames and long linknames, supported since dpkg 1.4.1.17), |
| and the POSIX ustar format (long names supported since dpkg 1.15.0). |
| Unrecognized tar typeflags are considered an error. |
| .PP |
| The first member is named |
| .B debian\-binary |
| and contains a series of lines, separated by newlines. Currently only |
| one line is present, the format version number, |
| .BR 2.0 |
| at the time this manual page was written. |
| Programs which read new-format archives should be prepared for the |
| minor number to be increased and new lines to be present, and should |
| ignore these if this is the case. |
| .PP |
| If the major number has changed, an incompatible change has been made |
| and the program should stop. If it has not, then the program should |
| be able to safely continue, unless it encounters an unexpected member |
| in the archive (except at the end), as described below. |
| .PP |
| The second required member is named |
| .BR control.tar.gz . |
| It is a gzipped tar archive containing the package control information, |
| as a series of plain files, of which the file |
| .B control |
| is mandatory and contains the core control information. The control |
| tarball may optionally contain an entry for |
| .RB ` . ', |
| the current directory. |
| .PP |
| The third, last required member is named |
| .BR data.tar . |
| It contains the filesystem as a tar archive, either |
| not compressed (supported since dpkg 1.10.24), or compressed with |
| gzip (with \fB.gz\fP extension), |
| xz (with \fB.xz\fP extension, supported since dpkg 1.15.6), |
| bzip2 (with \fB.bz2\fP extension, supported since dpkg 1.10.24) or |
| lzma (with \fB.lzma\fP extension, supported since dpkg 1.13.25). |
| .PP |
| These members must occur in this exact order. Current implementations |
| should ignore any additional members after |
| .BR data.tar . |
| Further members may be defined in the future, and (if possible) will be |
| placed after these three. Any additional members that may need to be |
| inserted before |
| .B data.tar |
| and which should be safely ignored by older programs, will have names |
| starting with an underscore, |
| .RB ` _ '. |
| .PP |
| Those new members which won't be able to be safely ignored will be |
| inserted before |
| .B data.tar |
| with names starting with something other than underscores, or will |
| (more likely) cause the major version number to be increased. |
| .SH SEE ALSO |
| .BR deb\-old (5), |
| .BR dpkg\-deb (1), |
| .BR deb\-control (5). |