dpkg-scanpackages(1) dpkg suite dpkg-scanpackages(1)

# [NAME](#NAME)

dpkg-scanpackages - create Packages index files

# [SYNOPSIS](#SYNOPSIS)

**dpkg-scanpackages** \[*option*...] *binary-path* \[*override-file* \[*path-prefix*]] **&gt;** *Packages*

# [DESCRIPTION](#DESCRIPTION)

**dpkg-scanpackages** sorts through a tree of Debian binary packages and creates a Packages file, used by [**apt**(8)](/man/os/dpkg/apt.8), [**dselect**(1)](/man/os/dpkg/dselect.1), etc, to tell the user what packages are available for installation. These Packages files are the same as those found on Debian archive sites and media discs. You might use **dpkg-scanpackages** yourself if making a directory of local packages to install on a cluster of machines.

**Note**: If you want to access the generated Packages file with [**apt**(8)](/man/os/dpkg/apt.8) you will probably need to compress the file with [**xz**(1)](/man/os/dpkg/xz.1) (generating a Packages.xz file), [**bzip2**(1)](/man/os/dpkg/bzip2.1) (generating a Packages.bz2 file) or [**gzip**(1)](/man/os/dpkg/gzip.1) (generating a Packages.gz file). [**apt**(8)](/man/os/dpkg/apt.8) ignores uncompressed Packages files except on local access (i.e. **file://** sources).

*binary-path* is the name of the tree of the binary packages to process (for example, **contrib/binary-i386**). It is best to make this relative to the root of the Debian archive, because every Filename field in the new Packages file will start with this string.

*override-file* is the name of a file to read which contains information about how the package fits into the distribution. The file can be compressed (since dpkg 1.15.5). See [**deb-override**(5)](/man/os/dpkg/deb-override.5).

*path-prefix* is an optional string to be prepended to the Filename fields.

If more than one version of a package is found only the newest one is included in the output. If they have the same version and only differ in architecture only the first one found is used.

# [OPTIONS](#OPTIONS)

[**-t**, **--type** *type*](#t)

Scan for \*.*type* packages, instead of \*.deb.

[**-e**, **--extra-override** *file*](#e)

Scan *file* to find supplementary overrides. The file can be compressed (since dpkg 1.15.5). See [**deb-extra-override**(5)](/man/os/dpkg/deb-extra-override.5) for more information on its format.

[**-a**, **--arch** *arch*](#a)

Use a pattern consisting of *\*\_all.deb* and *\*\_arch.deb*, or *\*\_arch.deb* if **--no-implicit-arch** has been specified, instead of scanning for all debs.

[**--no-implicit-arch**](#no)

Do not implicitly add architecture **all** binary packages when specifying **--arch**.

Supported since dpkg 1.23.6.

[**-h**, **--hash** *hash-list*](#h)

Only generate file hashes for the comma-specified list specified. The default is to generate all currently supported hashes. Supported values: **md5**, **sha1**, **sha256**.

Supported since dpkg 1.17.14.

[**-m**, **--multiversion**](#m)

Include all found packages in the output.

[**-M**, **--medium** *id-string*](#M)

Add an **X-Medium** field containing the value *id-string*.

This field is required if you want to generate **Packages.cd** files for use by the **media** access method of **dselect**.

Supported since dpkg 1.15.5.

**-?**, **--help**

Show the usage message and exit.

[**--version**](#version)

Show the version and exit.

# [ENVIRONMENT](#ENVIRONMENT)

[**DPKG\_COLORS**](#DPKG_COLORS)

Sets the color mode. The currently accepted values are: **auto** (default), **always** and **never**.

Supported since dpkg 1.18.5.

[**DPKG\_NLS**](#DPKG_NLS)

If set, it will be used to decide whether to activate Native Language Support, also known as internationalization (or i18n) support. The accepted values are: **0** and **1** (default).

Supported since dpkg 1.19.0.

# [DIAGNOSTICS](#DIAGNOSTICS)

**dpkg-scanpackages** outputs the usual self-explanatory errors. It also warns about packages that are in the wrong subdirectory, are duplicated, have a Filename field in their control file, are missing from the override file, or have maintainer substitutions which do not take effect.

# [SEE ALSO](#SEE_ALSO)

[**dpkg**(1)](/man/os/dpkg/dpkg.1), [**dselect**(1)](/man/os/dpkg/dselect.1), [**deb-override**(5)](/man/os/dpkg/deb-override.5), [**deb-extra-override**(5)](/man/os/dpkg/deb-extra-override.5), [**dpkg-scansources**(1)](/man/os/dpkg/dpkg-scansources.1).

2026-09-09 1.23.11-dirty

---

Document: dpkg-scanpackages(1) from dpkg 1.23.11-r1 (Chainguard OS)
Source: https://git.dpkg.org/git/dpkg/dpkg.git
