Differences between revisions 51 and 53 (spanning 2 versions)
Revision 51 as of 2016-04-30 10:57:35
Size: 7576
Comment: Adding more packaging types / formats
Revision 53 as of 2016-05-01 08:38:21
Size: 7805
Comment: Rewrite of first section
Deletions are marked like this. Additions are marked like this.
Line 6: Line 6:
When you seriously think about packaging as a newcomer to Debian, please read the official documentation: If you're just starting out with Debian packaging, please read the official documentation first:
Line 17: Line 17:
Debian packages are maintained by a community of Debian Developers and volunteers. This page contains information relevant to packaging software for Debian.
Line 18: Line 20:


== Why Packaging ==

Whether you want
 * to install some programs or data on several computers
 * to have consistent and deterministic versioning
 * the packaging system to take care of updates
 * to help the Debian project. (see [[http://www.debian.org/devel/wnpp/|Work-Needing and Prospective Packages]])
Line 30: Line 23:
There are two kinds of packages: "binary" (.deb) and "source" (.dsc) packages. There are tools (e.g. cpack) that are able to generate "binary" packages but such packaging is ad-hoc (build-system specific) and fragile. Such packages are more likely to fail to operate when the target system diverges from the original environment they were built in. A Debian package is a collection of files that allow for applications or libraries to be distributed via the Debian package management system. The aim of packaging is to allow the automation of installing, upgrading, configuring, and removing computer programs for Debian in a consistent manner.
Line 32: Line 25:
"source" packages in turn can be built to produce "binary" packages on any other machine and architecture. In a standardized, language and underlying build-system (make vs cmake) agnostic form they provide all the necessary information about build and run-time dependencies and conflicts, a standardized description of copyright and license information, an initial configuration, etc. That is why "binary" packages alone, without the "source" packages originating them, can not be submitted for inclusion into an official Debian distribution. A Debian package consists of one source package component and one or more binary package components. Debian Policy requires that these package files are built with a particular structure and format but there are many methods of arriving at these files.
Line 34: Line 27:
Therefore ''Packaging'' in the Debian world is primarily concerned with "source" packages. "binary" packages are just a product of such work. {{{#!wiki warning
Only packages that are compliant with Debian policy will be accepted into the archive. Manually constructed binary packages (.deb) that are not built from a source package will never be accepted.
}}}

Source packages not only contain the upstream source distribution and options for the Debian package build system but also lists of run-time dependencies and conflicting packages, a machine-readable description of copyright and license information, initial configurations, etc.

While the goal of packaging is to produce these files, for the most part, you will be working with the unpacked source in a directory. The source package (.dsc) and binary packages (.deb) will be built for you by tools such as dpkg-buildpackage.

You can read more about the anatomy of [[DebianPackage|binary packages]] or [[SourcePackage|source packages]] on their wiki pages.

Translation(s): English - Italiano - Svenska


If you're just starting out with Debian packaging, please read the official documentation first:


Debian packages are maintained by a community of Debian Developers and volunteers. This page contains information relevant to packaging software for Debian.

What is a "package"?

A Debian package is a collection of files that allow for applications or libraries to be distributed via the Debian package management system. The aim of packaging is to allow the automation of installing, upgrading, configuring, and removing computer programs for Debian in a consistent manner.

A Debian package consists of one source package component and one or more binary package components. Debian Policy requires that these package files are built with a particular structure and format but there are many methods of arriving at these files.

Only packages that are compliant with Debian policy will be accepted into the archive. Manually constructed binary packages (.deb) that are not built from a source package will never be accepted.

Source packages not only contain the upstream source distribution and options for the Debian package build system but also lists of run-time dependencies and conflicting packages, a machine-readable description of copyright and license information, initial configurations, etc.

While the goal of packaging is to produce these files, for the most part, you will be working with the unpacked source in a directory. The source package (.dsc) and binary packages (.deb) will be built for you by tools such as dpkg-buildpackage.

You can read more about the anatomy of binary packages or source packages on their wiki pages.

Introduction to Debian Packaging

To get a good grounding in Debian packaging:

Now that you have seen the basics, it is highly recommended that you read some real stuff:

Then, if you are looking for answers, you can come back here or read:

What not to do:

  • There are no shortcuts to learning good packaging practices. Avoid equivs which is only useful for building trivial metapackages and does not teach you anything about packaging.

Packaging Procedures

Types / Formats

Tools

Advanced Procedures

Useful Pages

Training Sessions

From Debian Women

DebianWomen organise interesting training sessions.

Other Information

See also:


CategoryPackageManagement CategoryPackaging