One of Debian's strengths is its PackageManagement system. This system is made up of many individual tools that manipulate and query your installed packages and the available package database. This page contains a list of all these commands. It is not meant to be a command reference, so command-line flags and usage, etc, is not discussed. Use this page to learn the capabilites of each tool and then look use each tools manpage to teach yourself how to use it.

Tools for everyday use

Every Debian user knows this one; it's the basic tool that's used to organize the installation of packages (dpkg does the actual installing, apt-get handles dependencies, etc). Apt-get itself is text-mode, although it may ask installation questions in a X11 window depending on system configuration.

An ncurses-based frontend for apt-get that's a lot friendlier than dselect. Recommended as a precursor to, or replacement for, dselect.

This command is used to search the contents of your local package database. Searches with apt-cache are different from searches with dpkg in that an apt-cache search will cover the entire contents whatever is in your sources list (as opposed to dpkg searches, which only search the contents of installed packages). Text-mode.

Originally designed for !SuSe? Linux, there is a Debian-adapted version of this X11-based apt-get frontend that works really well for what I call "package shopping"...going through the full list of what's available. Synaptic is now the default graphical package manager shipped in Ubuntu.

Tools for advanced use

This is the basic package utility, that handles installing packages, removing them, and getting information from them. All the other tools are frontends for dpkg, and many users rarely use it directly.

An ncurses-based frontend for apt-get that handles package dependencies, suggestions, recommendations, etc. Use of this program is recommended for not necessarily "advanced" users, but for people who are willing to wade through a very terse and sometimes confusing interface. Many people have blamed this tool for making sweeping changes to their package installations that they didn't intend to make. Approach with caution. :)

Search for a filename installed by any package in the contents of sources.list.

Display the relevant changelog entries whenever a package is upgraded.

Download the source package for something, build it on the fly, and install the newly built binary package. This normally isn't necessary, since Debian's packages will already be built against the libraries you have (since Debian, unlike other distributions, is a coherent package set rather than just an FTP site full of unrelated packages), but with apt-build you can optionally apply patches to the source tree after downloading but before building. The command "apt-build world" does what you'd expect it to do...I'm afraid of this and haven't tried it myself. :)

Add a CD-ROM with packages on it to your sources.list.

Generates recursive dependency trees for a package.

Generates a sources.list file from the current list of mirrors, after testing them for latency/bandwidth.

Shows all available versions of a package (allows wildcards), or all packages, and displays upgrade information where applicable.

Allows you to reconfigure package preferences (the same questions that are asked when the package is installed).

Variant of "apt-cache show" that shows information for the source version of the package named, rather than the binary version.

Shows critical bugs in named packages. Can be run anytime, but specifically intended to help users that track the "unstable" distribution from upgrading to a package that catastrophically breaks the system.

Allows non-networked machines to benefit from apt by exporting a list of packages selected for install, then later installing those packages from removable media after another machine has downloaded them.

This one doesn't really count, as it's not meant to be used directly...this program is used by the other apt utilities to provide a standard interface to the apt configuration settings.

Recreates Sources and Packages files with the records sorted and within each record, the fields sorted.

Extracts templates and install scripts from packages.

Sets up the sources.list file (this gets run during the initial OS install, for example)

From the package description: auto-apt checks the file access of programs running within its environments, and if a program tries to access a file known to belong in an uninstalled package, auto-apt will install that package using apt-get.

Tools for creating/managing a package repository

Alternative to apt-proxy

Specialized HTTP proxy server made to proxy access to one or more apt repositories. This is very useful on a LAN, where the entire network can get packages from a central machine that only downloads from the mirrors once.

Imports packages into a cache used by apt-proxy.

Generates, from a directory of packages, the "Packages" and "Sources" control files used for an apt repository.

Moves a collection of Debian packages into a proper "pool" directory hierarchy as used by a package repository.