MAKEMANDB(8)

MAKEMANDB(8) | System Manager's Manual | MAKEMANDB(8)

# NAME

`makemandb` —
parse the manual pages and build a search index for apropos(1)

# SYNOPSIS

`makemandb` | [`-floQqv`] [`-C` path]

# DESCRIPTION

The `makemandb` utility traverses the directories containing man pages, parses the manual pages with the help of mandoc(3) and builds an Sqlite database to support full text searches by apropos(1). It obtains the list of directories to traverse using the `-p` option of man(1).

It supports the following options:

`-C` path
  Use different man(1) configuration file than the default, /etc/man.conf.
`-f`
  Force rebuilding the index from scratch, pruning the existing one.
`-l`
  Limit the parsing to only the NAME section of the pages. This option can be used to mimic the behavior of the classic apropos(1) and also to substantially save disk space.
`-o`
  Use this option to optimize the index for faster search by apropos(1) and also to significantly reduce disk space usage. This is an expensive I/O operation.
`-Q`
  Print only fatal error messages (i.e., when the database is left in an inconsistent state and needs manual intervention).
`-q`
  Print only warnings and error messages but no status updates.
`-v`
  Enable verbose output. This prints the name of every file being parsed and a summary at the end of the index update.

The index generated by `makemandb` is also used by the whatis(1) program, replacing the old “makewhatis” program.

## DATABASE SCHEMA

The name of the FTS table is mandb and its schema is as follows:

`section` | The section number of the page
`name` | The name of the page from the NAME section.
`name_desc` | The one line description from the NAME section.
`desc` | The DESCRIPTION section.
`lib` | The LIBRARY section.
`return_vals` | The RETURN VALUES section.
`env` | The ENVIRONMENT section.
`files` | The FILES section.
`exit_status` | The EXIT STATUS section.
`diagnostics` | The DIAGNOSTICS section.
`errors` | The ERRORS section.
`md5_hash` | MD5 checksum of the man page.
`machine` | The machine architecture (if any) for which the man page is relevant.

# FILES

/etc/man.conf
  The location of the Sqlite FTS database can be configured using the `_mandb` tag.

# SEE ALSO

apropos(1), man(1), whatis(1), mandoc(3), man.conf(5)

# AUTHORS

Abhinav Upadhyay

June 18, 2016 | NetBSD 9.5