This page collects information about the Debian project and the Debian operating system. The information has been gathered from various resources and is mainly of interest to me because I am not a DD (see glossary) and therefore not terribly familiar with some terms and resources.

General references

On this wiki


On a Debian system

  • Debian FAQ : Install package debian-faq, the actual documents are then placed under /usr/share/doc/debian/FAQ


Advanced Packaging Tool
Bug Tracking System
Debian Account Manager. DD that manages account creation and removal. The DAM has the final decision over an application.
Debian Installer
Debian Developer
Debian Documentation Project
Refers either to the yearly held Debian Conference, or to the Debian Configuration Management System. See DebianPackageManagement for details about the latter.
A different name for a release (see there)
Debian Project Leader
Debian Package Manager
Intent To Package (WNPP related). Someone has found an interesting piece of software and would like to create a Debian package from this software.
New Maintainer
Non-Maintainer Upload (details see here)
Package Tracking System
Release Critical, as in "RC bugs"
The main releases of Debian have the symbolic names "stable", "testing" and "unstable". Symbolic names refer to moving targets, for instance "stable" may refer to Debian release 6, 7 or 8, depending on when you make the reference. When an actual release is made it is given not only a version number (6, 7, 8, ...), but also a codename so that people can refer to the release using that codename. So far all codenames were taken from Pixar movies. For instance, "jessie" refers to release 8.x. Also see the Releases section further down on this page.
Request For Adoption (WNPP related). The current maintainer of a package is asking for someone else to maintain the package.
Request For Help (WNPP related). The current maintainer of a package needs help in maintaining the package.
Request For Package (WNPP related). Someone has found an interesting piece of software and would like someone else to create a Debian package from this software.
Permanent codename for the unstable release of Debian. Can also be seen as an acronym for "still in development".
Work-Needing and Prospective Packages


List of current releases. The 3 main releases, or distributions, of Debian are:

At the time of writing, this release is named "sarge" and carries the version number v3.1r0
At the time of writing, this release is named "etch"; in time it will become the new stable release
This release is always named "sid"; packages migrate from here into testing

In addition, there are also the following distributions:

This refers to the distribution just from before stable; at the time of writing, this would be "woody"
This distribution is used for packages which are still being developed, and with a high risk of breaking your system. Note that this is not a complete distribution and therefore needs to be used in conjunction with "stable", "testing" or "unstable"
"foo" must be replaced with the name of a stable release, e.g. "jessie-backports". Backports are packages taken from the next Debian release (i.e. "testing"), adjusted and recompiled for usage on Debian stable. Because the package is also present in the next Debian release, a stable+backports system can easily be upgraded once the next Debian release comes out.

A release can also have sub-sections:

Security updates
Packages that aim at fast moving targets, such as spam filtering and virus scanning; Updating volatile packages of a release should be absolutely painless as those package updates do not normally contain any functional changes
Same as volatile, but for package updates that may include functional changes or might be otherwise painful

Testing vs. unstable

  • There is an automatism at work that moves packages from unstable to testing after a certain amount of time.
  • I have not yet researched how this automatism works, but I have seen this useful site that answers the question "Why is package X not in testing yet?"

Also see

Package management programs


As a system administrator I am interacting with Debian's package system on various levels (e.g. command line, interactive), using a number of programs that often manage only a small part of the overall system (e.g. bare-bones package installation; install a package including dependency resolution; manipulate the DebConf database; etc.). This section enumerates the programs that I know about and briefly outlines their responsibilities, without going into too much detail. A more in-depth discussion of each program's usage, configurations and possible pitfalls can be found on a separate wiki page.

Without doubt the most important program - or at least the one that I most frequently use - is aptitude. It is followed by dpkg, in those cases where i need to perform a lower-level task.


Basic package management operations are performed by the command line utility dpkg.

  • dpkg knows how to install and uninstall .deb packages
  • dpkg controls the package database
  • dpkg detects package dependencies and conflicts, but it does not know how to resolve them - that job is delegated to more advanced tools
  • dpkg does not know where to obtain packages, it can only install .deb package files that are already located somewhere in the filesystem

apt-get / apt-cache

The command line utility apt-get is a more advanced tool than dpkg.

  • It detects package dependencies and conflicts and knows how to resolve most of these problems
  • It "knows" where to obtain .deb package files because its configuration includes a definition of package sources (typically FTP or HTTP mirrors)
  • It uses dpkg to install and uninstall packages

apt-cache can be used to search and manipulate the APT package cache. It is also a command line utility.

For more information about APT, see


dselect is a console-based, menu-driven interactive front-end for dpkg.

  • It is not very user friendly, let alone intuitive
  • dselect often has problems resolving package dependencies and conflicts; it is easily possible to get into a situation that can only be resolved by using apt-get on the command line
  • I very strongly recommend using aptitude over dselect !!!
  • Unfortunately, some official Debian docs (notably the APT HOWTO) mention dselect but not aptitude - at least that was the case when I started using Debian in 2003, which is why I fell into the trap of using dselect


aptitude is a console-based, menu-driven interactive front-end for APT

  • It is quite intuitive and user-friendly (it even has an undo feature)
  • It is extremely clever when it comes to resolving package dependencies and conflicts; in complex conflict situations you can examine multiple solutions to resolve the conflict before you choose one solution
  • I have used aptitude for over a decade, and it has never let me down in even the hairiest situations (typically when I was running a system on testing and had to update libperl to a new version)


synaptic is a GUI front-end for APT. I currently have no experience with this tool, as I do all the administration over an SSH terminal.

System administration


If several packages provide a program that fullfils the same function on a system, that function is made accessible in the file system under a generic name (e.g. /usr/bin/editor). Debian's alternatives system is then used to select the actual package/program that will provide the desired functionality.

The "magic" of the alternatives system is made possible through a chain of symbolic links. If we look at, for instance, /usr/bin/editor:

zapmama2:~# ls -l /usr/bin/editor
lrwxrwxrwx 1 root root 24 2009-06-11 20:41 /usr/bin/editor -> /etc/alternatives/editor
zapmama2:~# ls -l /etc/alternatives/editor
lrwxrwxrwx 1 root root 17 2009-06-11 13:05 /etc/alternatives/editor -> /usr/bin/vim.tiny
zapmama2:~# ls -l /usr/bin/vim.tiny
-rwxr-xr-x 1 root root 630340 2008-10-18 02:12 /usr/bin/vim.tiny

An alternative may consist of multiple links that need to be changed together: For instance, not only the editor program needs to be changed, but also the editor man page.

Usually the debconf system is responsible for setting up alternatives, when packages are installed, removed or updated. Alternatives are in "automatic" mode when they are first introduced to the system. In this mode, the debconf system makes sure that the alternative with the highest priority is selected. When the system administrator begins to make manual changes, the alternative moves into "manual" mode, which means that debconf no longer makes automatic choices and it will no longer be the highest-priority-alternative that becomes selected.

To switch between alternatives, use the program update-alternatives. For details, see the program's man page.

Bug tracker

Report a new bug

To report a new bug, either use the reportbug utility on the command line of the Debian system (recommended by Debian), or send an email to the Debian bugtracker (preferred by me). Everything is explained in detail here:


  • Send an email to
  • The subject of the message will be used as the title of the bug
  • The body of the message must begin with a couple of "pseudo-headers" that tell the bugtracker which package the bug report refers to; example
Package: lprng
Version: 3.8.28dfsg.1-1.1
  • The rest of the body (possibly separated by an empty line from the pseudo-headers) contains the actual bug report

Reply/add comment to an existing bug

For instance, to reply or add a comment to bug report 12345:

  • Send an email to

Watch an existing bug

The following page details how to "watch" an existing bug report for changes:

For instance, to watch bug 12345:

  • Send an email to; subject and body are ignored, so should be empty
  • Wait for the confirmation message sent back by the bugtracker
  • Reply to the confirmation message to prove that you own the subscribing email adress

Unsubscribing works along the same principle, just send an email to