.TH dpkg\-deb 1 "2011-08-14" "Debian Project" "dpkg suite"
.SH NAME
dpkg\-deb \- Debian package archive (.deb) manipulation tool
.
.SH SYNOPSIS
.B dpkg\-deb
.RI [ option "...] " command
.
.SH DESCRIPTION
.B dpkg\-deb
packs, unpacks and provides information about Debian archives.
.PP
Use
.B dpkg
to install and remove packages from your system.
.PP
You can also invoke
.B dpkg\-deb
by calling
.B dpkg
with whatever options you want to pass to
.BR dpkg\-deb ". " dpkg
will spot that you wanted
.B dpkg\-deb
and run it for you.
.
.SH COMMANDS
.TP
.BR \-b ", " \-\-build " \fIdirectory\fP [\fIarchive\fP|\fIdirectory\fP]"
Creates a debian archive from the filesystem tree stored in
.IR directory ". " directory
must have a
.B DEBIAN
subdirectory, which contains the control information files such
as the control file itself. This directory will
.I not
appear in the binary package's filesystem archive, but instead
the files in it will be put in the binary package's control
information area.

Unless you specify
.BR \-\-nocheck ", " dpkg\-deb "
will read
.B DEBIAN/control
and parse it. It will check it for syntax errors and other problems,
and display the name of the binary package being built.
.B dpkg\-deb
will also check the permissions of the maintainer scripts and other
files found in the
.B DEBIAN
control information directory.

If no
.I archive
is specified then
.B dpkg\-deb
will write the package into the file
.IR directory \fB.deb\fR.

If the archive to be created already exists it will be overwritten.

If the second argument is a directory then
.B dpkg\-deb
will write to the file
.IB package _ version _ arch .deb\fR,
or
.IB package _ version .deb
if no
.B Architecture
field is present in the package control file. When a target directory
is specified, rather than a file, the
.B \-\-nocheck
option may not be used (since
.B dpkg\-deb
needs to read and parse the package control file to determine which
filename to use).
.TP
.BR \-I ", " \-\-info " \fIarchive\fP [\fIcontrol-file-name\fP...]"
Provides information about a binary package archive.

If no
.IR control-file-name s
are specified then it will print a summary of the contents of the
package as well as its control file.

If any
.IR control-file-name s
are specified then
.B dpkg\-deb
will print them in the order they were specified; if any of the
components weren't present it will print an error message to stderr
about each one and exit with status 2.
.TP
.BR \-W ", " \-\-show " \fIarchive\fP"
Provides information about a binary package archive in the format
specified by the
.B \-\-showformat
argument. The default format displays the package's name and version
on one line, separated by a tabulator.
.TP
.BR \-f ", " \-\-field " \fIarchive\fP [\fIcontrol-field-name\fP...]"
Extracts control file information from a binary package archive.

If no
.BR control\-file\-field s
are specified then it will print the whole control file.

If any are specified then
.B dpkg\-deb
will print their contents, in the order in which they appear in the
control file. If more than one
.BR control\-file\-field
is specified then
.B dpkg\-deb
will precede each with its field name (and a colon and space).

No errors are reported for fields requested but not found.
.TP
.BR \-c ", " \-\-contents " \fIarchive\fP"
Lists the contents of the filesystem tree archive portion of the
package archive. It is currently produced in the format generated by
.BR tar 's
verbose listing.
.TP
.BR \-x ", " \-\-extract " \fIarchive directory\fP"
Extracts the filesystem tree from a package archive into the specified
directory.

Note that extracting a package to the root directory will
.I not
result in a correct installation! Use
.B dpkg
to install packages.

.I directory
(but not its parents) will be created if necessary, and its permissions
modified to match the contents of the package.
.TP
.BR \-X ", " \-\-vextract " \fIarchive directory\fP"
Is like
.BR \-\-extract " (" \-x ")"
with
.BR \-\-verbose " (" \-v ")"
which prints a listing of the files extracted as it goes.
.TP
.BR \-R ", " \-\-raw\-extract " \fIarchive directory\fP"
Extracts the filesystem tree from a package archive into a specified
directory, and the control information files into a DEBIAN subdirectory
of the specified directory.

The target directory (but not its parents) will be created if necessary.
.TP
.BR \-\-fsys\-tarfile " \fIarchive\fP"
Extracts the filesystem tree data from a binary package and sends it
to standard output in
.B tar
format. Together with
.BR tar (1)
this can be used to extract a particular file from a package archive.
The input archive will always be processed sequentially.
.TP
.BR \-e ", " \-\-control " \fIarchive\fP [\fIdirectory\fP]"
Extracts the control information files from a package archive into the
specified directory.

If no directory is specified then a subdirectory
.B DEBIAN
in the current directory is used.

The target directory (but not its parents) will be created if
necessary.
.TP
.BR \-h ", " \-\-help
Show the usage message and exit.
.TP
.BR \-\-version
Show the version and exit.
.
.SH OPTIONS
.TP
\fB\-\-showformat=\fP\fIformat\fR
This option is used to specify the format of the output \fB\-\-show\fP
will produce. The format is a string that will be output for each package
listed.

The string may reference any status field using the
"${\fIfield-name\fR}" form, a list of the valid fields can be easily
produced using
.B \-I
on the same package. A complete explanation of the formatting options
(including escape sequences and field tabbing) can be found in the
explanation of the \fB\-\-showformat\fP option in
.BR dpkg\-query (1).

The default for this field is "${Package}\\t${Version}\\n".
.TP
.BI \-z compress-level
Specify which compression level to use on the compressor backend, when
building a package (default is 9 for gzip and bzip2, 6 for xz and lzma).
.TP
.BI \-Z compress-type
Specify which compression type to use when building a package. Allowed
values are \fIgzip\fP, \fIxz\fP, \fIbzip2\fP, \fIlzma\fP, and \fInone\fP
(default is \fIgzip\fP).
.TP
.BR \-\-new
Ensures that
.B dpkg\-deb
builds a `new' format archive. This is the default.
.TP
.BR \-\-old
Forces
.B dpkg\-deb
to build an `old' format archive. This old archive format is less
easily parsed by non-Debian tools and is now obsolete; its only use is
when building packages to be parsed by versions of dpkg older than
0.93.76 (September 1995), which was released as i386 a.out only.
.TP
.BR \-\-nocheck
Inhibits
.BR "dpkg\-deb \-\-build" 's
usual checks on the proposed contents of an archive. You can build
any archive you want, no matter how broken, this way.
.TP
.BR \-v ", " \-\-verbose
Enables verbose output. This currently only affects \fB\-\-extract\fP making
it behave like \fB\-\-vextract\fP.
.TP
.BR \-D ", " \-\-debug
Enables debugging output. This is not very interesting.
.
.SH ENVIRONMENT
.TP
.B TMPDIR
If set, \fBdpkg\-deb\fP will use it as the directory in which to create
temporary files and directories.
.
.SH BUGS
.B dpkg\-deb \-I
.IB package1 .deb
.IB package2 .deb
does the wrong thing.

There is no authentication on
.B .deb
files; in fact, there isn't even a straightforward checksum.
(Higher level tools like APT support authenticating \fB.deb\fP packages
retrieved from a given repository, and most packages nowadays provide an
md5sum control file generated by debian/rules. Though this is not directly
supported by the lower level tools.)

Do not attempt to use just
.B dpkg\-deb
to install software! You must use
.B dpkg
proper to ensure that all the files are correctly placed and the
package's scripts run and its status and contents recorded.
.
.SH SEE ALSO
.BR deb (5),
.BR deb\-control (5),
.BR dpkg (1),
.BR dselect (1).
.
.SH AUTHOR
Copyright \(co 1995-1996 Ian Jackson
.sp
This is free software; see the GNU General Public Licence version 2 or
later for copying conditions. There is NO WARRANTY.
