Being able to install and remove packages is great, but the basic software
for doing this (known as dpkg
) does exactly that
and nothing more. This is fine if you download one or two packages by hand,
but quickly becomes cumbersome when you are trying to manage a large number
of packages. Furthermore, if your shiny new package requires software you
haven't yet installed, you have to download the newly required software by
hand. And if you later decide to remove the no-longer-shiny package, these
extra packages will linger on your system, consuming hard drive space,
unless you manually remove them.
Obviously, all of this manual labor is a tedious chore, and so most package
management systems come with software which takes care of some or all of it
for you. apt
is a common base on which to build these programs: in
addition to aptitude, programs such as synaptic and
apt-watch make use of apt
.
apt
works by keeping a list of the packages that can be downloaded from
Debian on your computer. This list is used to find packages that need to be
upgraded and to install new packages. apt
can also solve many dependency
problems automatically: for instance, when you choose to install a package,
it will find any additional required packages and install those as well.
When working with a package manager based on apt
, such as aptitude, you
will typically perform three basic tasks: you will
update the list of packages that are available by
downloading new lists from the Debian servers, you will
select which packages should be installed, upgraded,
or removed, and finally, you will commit your
selections by actually performing the installations, removals, etc.
apt
-based package managers read the list of “sources” --
repositories of Debian packages -- from the file
/etc/apt/sources.list
. The format and contents of this
file are beyond the scope of this document, but are described in the manual
page sources.list(5)
.