2.1.10 The pool
directory
Historically, packages were kept in the subdirectory of dists
corresponding to the distribution that contained them. This turned out to
cause various problems, such as large bandwidth consumption on mirrors when
major changes were made.
Packages are now kept in a large "pool", structured according to the
name of the source package. To make this manageable, the pool is subdivided by
section (main, contrib, and non-free)
and by the first letter of the source package name. These directories contain
several files: the binary packages for each architecture, and the source
packages from which the binary packages were generated.
You can find out where each package is placed by executing a command like
apt-cache showsrc mypackagename and looking at the
"Directory:" line. For example, the apache
packages are
stored in pool/main/a/apache/
. Since there are so many
lib* packages, these are treated specially: for instance,
libpaper
packages are stored in
pool/main/libp/libpaper/
.
The dists
directories are still used for the index files used by
programs like apt
. Also, at the time of writing, older
distributions have not been converted to use pools, so you'll see paths
containing distribution names such as potato or woody
in the "Directory" header field.
Normally, you won't have to worry about any of this, as new apt
and probably older dpkg-ftp
will handle it seamlessly. If you
want more information, see the RFC:
implementation of package pools
.