A package manager keeps track of what software is installed on your computer, and allows you to easily install new software, upgrade software to newer versions, or remove software that you previously installed. As the name suggests, package managers deal with packages: collections of files that are bundled together and can be installed and removed as a group.
Often, a package is just a particular program. For instance,
the instant messaging client gaim is
contained in the Debian package of the same name. On the other
hand, it is common for programs to consist of several
interrelated packages. For instance, the
gimp image editor consists not only of the
gimp
package, but also of the
gimp-data
package; in addition, several
optional add-on packages (containing esoteric data,
documentation, and so on) are also available. It is also
possible for several small, related programs to be contained in
a single package: for instance, the
fileutils
package contains several
common Unix commands, such as ls,
cp, etc.
Some packages require other packages in order to function. In Debian, packages can depend upon, recommend, suggest, break, or conflict with other packages.
If a package A depends upon another package B, then B is
required for A to operate properly. For instance, the
gimp
package depends upon the
gimp-data
package in order to
ensure that the GIMP graphics editor can
access its critical data files.
If a package A recommends another package B, then B provides
important additional functionality to A that will be desired
in most circumstances. For instance, the
mozilla-browser
package recommends
the mozilla-psm
package, which adds
support for secure data transfers to the Mozilla Web browser.
While mozilla-psm
is not strictly
required for Mozilla to function, most users will want
Mozilla to support the secure transmission of confidential
data (such as credit card numbers).
If a package A suggests another package B, then package B
provides functionality that may enhance A, but is not needed
in most cases. For instance, the
kmail
package suggests the
gnupg
package, which contains
encryption software that can be used by KMail.
If a package A conflicts with another package B, then the
two packages cannot be installed at the same time. For
instance, fb-music-hi
conflicts
with fb-music-low
because they
provide alternate sets of music for the game Frozen Bubble.
The job of a package manager is to present an interface which
assists the user in managing the collection of packages
installed on his or her system. aptitude provides such an
interface by building on the apt
package management system.