---
name: "pkg_mklocatedb"
section: "1"
platform: "openbsd"
package: "man"
version: "8.0-current-20261101"
release: "OpenBSD 8.0-current (2026-11-01)"
platforms: ["openbsd"]
url: "https://new.carta.tech/pkg_mklocatedb"
---

# pkg\_mklocatedb(1)

create a locate database for packages

## NAME

**pkg\_mklocatedb** – create a locate database for packages

## SYNOPSIS

**pkg\_mklocatedb** \[**-aKnPqu**\] \[**-d** *repository*\] \[**-p** *portsdir*\] \[*pkg-name* *...*\]

## DESCRIPTION

The **pkg\_mklocatedb** command is used to create a file database for binary packages, which can be searched using the [locate(1)](/locate/1.md) utility.

Entries created for each package will have the package name prepended: kdelibs-3.3.2p2:/usr/local/bin/meinproc.

If the **-p** option is used, and SUBDIRLIST is not defined, **pkg\_mklocatedb** will retrieve all package entries from the ports tree.

If the **-p** option is used together with SUBDIRLIST, **pkg\_mklocatedb** will retrieve the package entries listed in SUBDIRLIST from the ports tree.

Otherwise, **pkg\_mklocatedb** will build database entries for every file object for each *pkg-name* given on the command line, or for every package in a *repository* specified as the **-d** option. If no package name is given, **pkg\_mklocatedb** will build database entries for all currently installed packages.

By default (unless standard output is a terminal), the list of names is fed to */usr/libexec/locate.mklocatedb* and the end result should be redirected to a file.

The options are as follows:

- **-a**

  Prepend file names with pkgpath information and package names.

- **-d** *repository*

  Scan directory *repository* for packages.

- **-K**

  Include keyword in each object full name. This is more accurate, but defeats [locate(1)](/locate/1.md) compression.

  However, note that some meta annotations always make it into the database: **@\*exec\***, **@define-tag**, **@newgroup**, **@newuser**, **@option** *no-default-conflict* and **@tag**.

- **-n**

  Do not pipe output to */usr/libexec/locate.mklocatedb* (default if standard output is a terminal).

- **-P**

  Prepend file names with pkgpath information instead of package name.

- **-p** *portsdir*

  Retrieve packing-lists from the ports tree instead of binary packages.

- **-q**

  Be quiet: do not report every package processed to standard error.

- **-u**

  Update an existing list. The list must come from standard input, and contain pkgpath information for items to be replaced.

## SEE ALSO

[locate(1)](/locate/1.md), [pkg\_info(1)](/pkg_info/1.md)

## AUTHORS

Marc Espie
