[ previous ] [ Contents ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ next ]


Debian New Maintainers' Guide
Chapter 1 - Getting started The Right Way


This document tries to describe building of a Debian package to the common Debian user, and the prospectus developer. It uses pretty common language, and it's well covered with working examples. There is an old Roman saying, Longum iter est per preaecepta, breve et efficax per exempla! (It's a long way by the rules, but short and efficient with examples!).

This document has been updated for the Debian squeeze release. [1]

One of the things that makes Debian such a top-notch distribution is its package system. While there is a vast quantity of software already in the Debian format, sometimes you need to install software that isn't. You may be wondering how you can make your own packages and perhaps you think it is a very difficult task. Well, if you are a real novice on Linux, it is hard, but if you were rookie, you wouldn't be reading this doc now. :-) You do need to know a little about Unix programming but you certainly don't need to be a wizard.

One thing is certain, though: to properly create and maintain Debian packages you need many hours. Make no mistake, for our system to work the maintainers need to be both technically competent and diligent.

This document will explain every little (at first maybe irrelevant) step, and help you create that first package, and to gain some experience in building next releases of that and maybe other packages later on.

If you need some help on packaging, please read Where to ask for help, Section 1.4.

Newer versions of this document should always be available online at http://www.debian.org/doc/maint-guide/ and in the maint-guide package.


1.1 Programs you need for development

Before you start anything, you should make sure that you have properly installed some additional packages needed for development. Note that the list doesn't contain any packages marked essential or required - we expect that you have those installed already.

The following packages come with the standard Debian installation, so you probably have them already (along with any additional packages they depend on). Still, you should check it with "aptitude show package".

The most important package to install on your development system is the build-essential package. Once you try to install it, it will pull in other packages required to have a basic build environment.

For some types of packages, that is all you will require, however there is another set of packages that while not essential for all package builds are useful to have install or may be required by your package:

The following is the very important documentation which you should read along with this document:

If this document contradicts with what the Debian Policy Manual and Debian Developer's Reference describes, they are correct. Please file a bug report on the maint-guide package.

The short descriptions that are given above only serve to introduce you to what each package does. Before continuing please thoroughly read the documentation of each program, at least, for the standard usage. It may seem like heavy going now, but later on you'll be very glad you read it.


1.2 Basic terminology

There are two types of packages.

Don't mix terms like source of the program and the source package of the program!

There are several role names used around Debian.

There are several version names used around Debian.

Please read the other manuals if you need more details on terminology.


1.3 Official Debian Developer

You can not become an official Debian Developer (DD) over night because it takes more than technical skill. Please do not be discouraged by this. If it is useful to others, you can still upload your package either as a maintainer through a sponsor or as a Debian Maintainer. See Debian New Maintainers for more.

Please note that you do not need to create any new package to become an official Debian Developer. Contributing to the existing packages can provide a path to become an official Debian Developer too. There are many packages waiting for good maintainers (see Choose your program, Section 2.1).


1.4 Where to ask for help

Before you decide to ask your question in some public place, please just RTFM. That includes documentation in /usr/share/doc/dpkg, /usr/share/doc/debian, /usr/share/doc/autotools-dev/README.Debian.gz, /usr/share/doc/package/* files and the man/info pages for all the programs mentioned in this document. See all the information at http://nm.debian.org/.

Making a small test package is good way to learn details of packaging. Inspecting existing well maintained packages is the best way to learn how other people make packages.

If you still have questions about packaging that you couldn't find answers to in the available documentation and web resources, you can ask them on the Debian Mentors' mailing list at debian-mentors@lists.debian.org. The more experienced Debian developers will gladly help you, but do read at least some of the documentation before asking a question!

See http://lists.debian.org/debian-mentors/ for more information about this mailing list.

When you receive a bug report (yes, actual bug reports!), you will know that it is time for you to dig into the Debian Bug Tracking System and read the documentation there, to be able to deal with the reports efficiently. I highly recommend reading the Developer's Reference, 5.8. 'Handling bugs'.

If you still have questions, ask on the Debian Developers' mailing list at debian-devel@lists.debian.org. See http://lists.debian.org/debian-devel/ for more information about this mailing list.

Even if it all worked well, it's time to start praying. Why? Because in just a few hours (or days) users from all around the world will start to use your package, and if you made some critical error you'll get mailbombed by numerous angry Debian users... Just kidding. :-)

Relax and be ready for bug reports, because there is a lot more work to be done before your package will be fully in line with Debian policies and its best practice guidelines (once again, read the real documentation for details). Good luck!


[ previous ] [ Contents ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ next ]


Debian New Maintainers' Guide

version 1.2.25, 2010-12-22 12:44:34 UTC

Josip Rodin joy-mg@debian.org