.\" This manpage is copyright (C) 1998 Branden Robinson <branden@debian.org>.
.\" 
.\" This is free software; you may redistribute it and/or modify
.\" it under the terms of the GNU General Public License as
.\" published by the Free Software Foundation; either version 2,
.\" or (at your option) any later version.
.\"
.\" This is distributed in the hope that it will be useful, but
.\" WITHOUT ANY WARRANTY; without even the implied warranty of
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
.\" GNU General Public License for more details.
.\"
.\" You should have received a copy of the GNU General Public
.\" License along with APT; if not, write to the Free Software
.\" Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 
.\" 02111-1307 USA
.TH apt-cache 8 "16 June 1998" "Debian GNU/Linux"
.SH NAME
apt-cache \- APT package handling utility \(em cache manipulator
.SH SYNOPSIS
.B apt-cache
.I command cache
.RI [ argument 
.IR ... ]
.SH DESCRIPTION
.B apt-cache
performs a variety of operations on APT's package cache.
.I apt-cache
is seldom called directly; instead it is usually invoked internally by
.BR apt-get (8)
or
.BR apt (8).
.PP
.I command
is one of
.RS
.PD 0
.B add
.PP
.B dump
.PP
.B dumpavail
.PP
.B showpkg
.PP
.B stats
.RE
.PD 1
.PP
.I cache
must be a package cache file (for instance,
.IR /var/cache/apt/pkgcache.bin ).
Some
.IR command s
require additional arguments.
.SS add
.B add
adds a new set of package records to
.IR cache .
Remaining arguments are of the form
.IR file : dist : ver ,
where
.I file
is the full path to file in question.
.I dist
and
.I ver
can be any string and are not yet implemented.
.SS dump
.B dump
displays information about all the packages in the cache. See
.B showpkg
below for an explanation of what data is output for each package.
.SS dumpavail
.B dumpavail
generates an
.I available
file suitable for use with
.BR dpkg (8)
based on the information in the cache.
.SS showpkg
.B showpkg
displays information about the packages listed on the command line.     
Remaining arguments are package names. The available versions and       
reverse dependencies of each package listed are listed, as well as      
forward dependencies for each version. Forward (normal) dependencies   
are those packages upon which the package in question depends; reverse  
dependencies are those packages that depend upon the package in         
question. Thus, forward dependencies must be satisfied for a package,  
but reverse dependencies need not be.                                   
For instance,
.B apt-cache showpkg
.I cache
.B libreadline2
would produce output similar to the following:
.PP
.RS
.PD 0
Package: libreadline2
.PP
Versions: 2.1-8,2.1-7,
.PP
Reverse Depends:
.RS
.PP
libreadlineg2,libreadline2
.PP
libreadlineg2,libreadline2
.PP
libreadline2-altdev,libreadline2
.RE
.PP
Dependencies:
.PP
2.1-8 - libc5 ncurses3.0 ldso
.PP
2.1-7 - ldso libc5 ncurses3.0
.RE
.PD 1
.PP
Thus it may be seen that libreadline2, version 2.1-8, depends on libc5,
ncurses3.0, and ldso, which must be installed for libreadline2 to work. In
turn, libreadlineg2 and libreadline2-altdev depend on libreadline2. If
libreadline2 is installed, libc5, ncurses3.0, and ldso must also be
installed; libreadlineg2 and libreadline2-altdev do not have to be
installed.
.SS stats
.B stats
displays some statistics about
.IR cache .
No further arguments are expected. Statistics reported are:
.RS
.TP
.I Total package names
is the number of package names found in the cache.
.TP
.I Normal packages
is the number of regular, ordinary package names; these
are packages that bear a one-to-one correspondence between their names and
the names used by other packages for them in dependencies. The majority of
packages fall into this category.
.TP
.I Pure virtual packages
is the number of packages that exist only as a virtual package name; that
is, packages only "provide" the virtual package name, and no package
actually uses the name. For instance, "mail-transport-agent" in the Debian
GNU/Linux system is a pure virtual package; several packages provide
"mail-transport-agent", but there is no package named "mail-transport-agent".
.TP
.I Single virtual packages
is the number of packages with only one package providing a particular  
virtual package. For instance, in the Debian GNU/Linux system,         
"X11-text-viewer" is a virtual package, but only one package, xless,    
provides "X11-text-viewer".
.TP
.I Mixed virtual packages
is the number of packages that either provide a particular virtual package
or have the virtual package name as the package name. For instance, in the
Debian GNU/Linux system, e2fsprogs is both an actual package, and
provided by the e2compr package.
.TP
.I Missing
is the number of package names that were referenced in a dependency but
were not provided by any package. Missing packages may be in evidence
if a full distribution is not accesssed, or if a package (real or virtual)
has been dropped from the distribution.
.TP
.I Total distinct versions
is the number of package versions found in the cache; this value is
therefore at least equal to the number of total package names. If more than
one distribution (both "stable" and "unstable", for instance), is being
accessed, this value can be considerably larger than the number of total
package names.
.TP
.I Total dependencies
is the number of dependency relationships claimed by all of the packages in
the cache.
.RE
.SH OPTIONS
None.
.SH FILES
None.
.SH SEE ALSO
.BR apt (8),
.BR apt-get (8),
.I /usr/doc/apt/cache*
.SH DIAGNOSTICS
apt-cache returns zero on normal operation, decimal 100 on error.
.SH BUGS
See <http://www.debian.org/Bugs/db/pa/lapt.html>.  If you wish to report a
bug in
.BR apt-cache ,
please see
.I /usr/doc/debian/bug-reporting.txt
or the
.BR bug (1)
command.
.SH AUTHOR
apt-cache was written by the APT team <apt@packages.debian.org>.