Translation(s): English - Fran├žais

Search for a Debian Package

Methods for searching for a package

Find a package that is already installed

1. Use dpkg

To search for an installed package including the file "toto":

      dpkg -S toto

To search for the package "toto":

      dpkg -l toto

It is often preferable to generalize, and search for all packages with "toto" in their name:

      dpkg -l '''toto'''

or, like this, with grep:

      dpkg -l | grep toto

2. Use the package, dlocate

This program does, more or less, the same thing as dpkg, but it does it even quicker. For more information, see man dlocate

Find an official package (installed or not)

1. Use apt-cache (available since Debian 2.2)

apt-cache allows searching rapidly among the entire list of available Debian packages. The most current usage is to use the "search" option with a rational expression as a parameter.

 apt-cache search emacs

This will post the names of all packages containing the expression "emacs" in the name or description. If you wish to search only for those packages with the search expression in the name, add the option --names-only:

 apt-cache search --names-only emacs

To learn more about a listed package use:

 apt-cache show packagename

This will provide a more complete description of the package named "packagename". Clearly, if you wanted to see such information for, say, emacs, you would use:

 apt-cache show emacs

Another option is to use aptitude search.

aptitude search emacs

This will basically provide the same information as apt-cache search.

2. Ask robots irc

Connect to the irc server at irc.debian.org, join channel #debian, then: (with "toto" as the name of the package or file): (translator note: I believe this is outdated, and one needs to connect to irc.freenode.net, then join #debian. I do KNOW this can be done on #debian on freenode, anyway. Perhaps it is an alternative option?)

  % <mt> /msg dpkg !find toto <dpkg> toto is in package:
  bla...bla

To search for a package in a specific distribution, such as the current Stable, named "squeeze", try

  % <mt> /msg dpkg !find toto squeeze

3. Search the Debian website

Try here: http://www.debian.org/distrib/packages

The Debian site has had a built in search engine for some time.

A package that has been removed from Debian

For various reasons, a package may be removed from Debian and no longer be easily accessible. In this case, try here: http://snapshot.debian.org

This site covers all Debian packages, including those which have been removed from Debian due to excessive bugs, security problems, etc. It does not, however, retain packages that have been removed for licensing issues.

The site offers a classic, but configurable, package recovery system (Debian sources):

An unofficial package

For various reasons, it may be useful (or necessary) to install "unofficial" Debian packages, not provided in the official Debian sources. There a a myriad of unofficial sources, each meeting a particular need (specifically configured or recompiled applications, for instance).

We have a site to identify and evaluate the quality of "unofficial" sources.

Site for finding unofficial sources: http://www.apt-get.org

Any random package?

What follows are two rather general methods for finding packages. The first is use to search for a package (or it could be used to find a config file, easily enough), and the second is used to find a file.

1. Run grep on the apt-get files. This works for all packages that you can install with

  apt-get install

meaning, those available in the repositories listed in your /etc/apt/sources.list

These files are available in /var/lib/apt/lists

To be certain that this list is current, you first may want to run

  apt-get update

Example : Search for the cddb package:

 grep -h -15 "Package: cddb" /var/lib/apt/lists/* || pager

This gives (among other junk):

 Package: cddb 
 Priority: optional 
 Section: sound 
 Installed-Size: 86
 Maintainer: Adrian Bridgett <bridgett@debian.org> 
 Architecture: i386
 Source: xmcd 
 Version: 2.6-10 
 Replaces: xmcd (<=2.3-1) 
 Depends: libc6  (>= 2.2.3-7) 
 Conflicts: suidmanager (<<0.50) 
 Filename:  pool/main/x/xmcd/cddb_2.6-10_i386.deb

2. Run grep on a file Contents-<arch_.gz (This file is made for that). This works to search for a package even if not installed from the official distribution (or from the unofficial packages, if the sources have been designed and such a file made available). This file can be found in various locations:

  % <mount point>''dists''<distribution>/Contents-<arch>.gz

For example:

  % /mnt/cdrom/dists/stable/Contents-i386.gz

  % <ftp address>''dists''<distribution>/Contents-<arch>.gz