dpkg
is a suite of programs for creating binary package files and
installing and removing them on Unix systems.[1]
The binary packages are designed for the management of installed executable programs (usually compiled binaries) and their associated data, though source code examples and documentation are provided as part of some packages.
This manual describes the technical aspects of creating Debian binary packages
(.deb files). It documents the behaviour of the package
management programs dpkg
, dselect
et al. and the way
they interact with packages.
It also documents the interaction between dselect
's core and the
access method scripts it uses to actually install the selected packages, and
describes how to create a new access method.
This manual does not go into detail about the options and usage of the package building and installation tools. It should therefore be read in conjuction with those programs' manpages.
The utility programs which are provided with dpkg
for managing
various system configuration and similar issues, such as
update-rc.d
and install-info
, are not described in
detail here - please see their manpages.
It does not describe the policy requirements imposed on Debian packages, such as the permissions on files and directories, documentation requirements, upload procedure, and so on. You should see the Debian packaging policy manual for these details. (Many of them will probably turn out to be helpful even if you don't plan to upload your package and make it available as part of the distribution.)
It is assumed that the reader is reasonably familiar with the dpkg
System Administrators' manual. Unfortunately this manual does not yet exist.
The Debian version of the FSF's GNU hello program is provided as an example for
people wishing to create Debian packages. The Debian debmake
package is recommended as a very helpful tool in creating and maintaining
Debian packages. However, while the tools and examples are helpful, they do
not replace the need to read and follow the Policy and Programmer's Manual.
ijackson@gnu.ai.mit.edu
bweaver@debian.org
schwarz@debian.org
srivasta@debian.org
debian-policy@lists.debian.org