MANDB(8)
๐พ MANDB(8) โ the manual pager utils girlies ๐
okay bestie, gather round, because mandb is literally the behind-the-scenes queen that keeps your man pages fast and fabulous. โจ
๐ธ NAME ๐ธ
mandb โ create or update the manual page index caches ๐๏ธ
โจ SYNOPSIS โจ
mandb [-dqsucpt?V] [-C file] [manpath]
mandb [-dqsut] [-C file] -f filename ...
๐ DESCRIPTION ๐
So like, mandb is what you run to initialise or manually update the index database caches. Those caches hold all the info about what your manual page system currently looks like, and the man-db utilities read them to be faster and do more cool stuff. it's giving glow-up for your docs. ๐ฆ
When it's creating or updating an index, mandb will warn you about bad ROFF .so requests, bogus manual page filenames, and manual pages where the whatis just cannot be parsed. not me snitching on your broken pages, but someone has to. ๐ญ
And ooh โ if you hand mandb an optional colon-delimited path, that overrides the internal system manual page hierarchy search path, which is normally figured out from info in the man-db configuration file. so yeah, you can just. redirect the whole vibe. ๐ซ
๐๏ธ DATABASE CACHES ๐๏ธ
mandb can be compiled with support for any one of these database types:
- Berkeley db โ Async: Yes โ Filename:
index.bt - GNU gdbm โ Async: Yes โ Filename:
index.db - UNIX ndbm โ Async: No โ Filename:
index.(dir|pag)
The database types that support asynchronous updates are faster, but at the cost of possible corruption if the process gets terminated in an unusual way. and if that ever happens to you (sending thoughts and prayers ๐ซถ), you may need to rerun mandb with the -c option to re-create the databases from scratch. no cap.
๐ OPTIONS ๐
-d,--debugโ Print debugging information. very "tell me everything" of it. ๐-q,--quietโ Produce no warnings. shhh bestie, we're being calm. ๐คซ-s,--no-straycatsโ Do not spend time looking for or adding information to the databases regarding stray cats. (yes, "stray cats" is the actual term, we don't make the rules ๐ฑ)-p,--no-purgeโ Do not spend time checking for deleted manual pages and purging them from the databases.-c,--createโ By default,mandbwill try to update any previously created databases, and if a database doesn't exist, it creates it. This option forcesmandbto delete previous databases and re-create them from scratch, and it implies--no-purge. You might need this if a database becomes corrupt or if a new database storage scheme shows up in the future. it's the factory reset of it all. ๐-u,--user-dbโ Create user databases only, even if you have the write permissions necessary to create system databases.-t,--testโ Perform correctness checks on manual pages in the hierarchy search path. With this option,mandbwill not alter existing databases. it's a vibe check, not a makeover. โ-f,--filenameโ Update only the entries for the given filename. This option is not for general use; it's used internally bymanwhen it has been compiled with theMAN_DB_UPDATESoption and finds that a page is out of date. It implies-pand disables-cand-s. so like, hands off unless you know what you're doing, bestie. ๐-Cfile,--config-file=file โ Use this user configuration file rather than the default of~/.manpath.-?,--helpโ Show the usage message, then exit. the classic cry for help. ๐--usageโ Print a short usage message and exit. short and sweet, periodt.-V,--versionโ Show the version, then exit.
๐ฆ EXIT STATUS ๐ฆ
0โ Successful program execution. slay. ๐1โ Usage, syntax, or configuration file error.2โ Operational error.3โ A child process failed.
๐ฉบ DIAGNOSTICS ๐ฉบ
These are the warning messages that can be emitted while building the database. read them, don't ignore them, i'm begging. ๐ญ
<filename>: whatis parse for page(sec) failedโ An attempt to extract whatis line(s) from the given<filename>failed. This is usually because the manual page is poorly written, but if you're getting many of these messages, it's likely your system contains non-standard manual pages that are incompatible with the man-db whatis parser. See the WHATIS PARSING section inlexgrog(1)for more info.<filename>: is a dangling symlinkโ<filename>doesn't exist but is referenced by a symbolic link. Further diagnostics are usually emitted to identify the<filename>of the offending link.- **
<filename>: bad symlink or ROFF \.so' request** โ<filename>` is either a symbolic link to, or contains a ROFF include request to, a file that doesn't exist. ๐ <filename>: ignoring bogus filenameโ The<filename>may or may not be a valid manual page, but its name is invalid. This is usually because a manual page with sectional extension<x>got put in manual page section<y>. wrong section, wrong era, we don't know her.<filename_mask>: competing extensionsโ The wildcard<filename_mask>isn't unique. This is usually caused by both a compressed and an uncompressed version of the same manual page existing at once. All but the most recent one are ignored. only the newest gets to be main character. ๐
๐ FILES ๐
/etc/man_db.confโ man-db configuration file./var/cache/man/index.(bt|db|dir|pag)โ An FHS compliant global index database cache.
Older locations for the database cache included:
/usr/man/index.(bt|db|dir|pag)โ A traditional global index database cache./var/catman/index.(bt|db|dir|pag)โ An alternate or FSSTND compliant global index database cache.
๐ SEE ALSO ๐
lexgrog(1), man(1), manpath(5), catman(8)
The WHATIS PARSING section that used to live in this manual page is now part of lexgrog(1). it moved out, got its own place, we respect the growth. ๐ฑ
๐ AUTHOR ๐
- Wilf. (
G.Wilford@ee.surrey.ac.uk). - Fabrizio Polacco (
fpolacco@debian.org). - Colin Watson (
cjwatson@debian.org).
๐ BUGS ๐
and that's the whole thing bestie!! this page is from man-db 2.13.1, dated 2025-05-02 โ so if you're reading this, you're on the 2.13.1 era of the manual pager utils. iconic behavior honestly. go forth and cache responsibly ๐ซถโจ๐ธ
๐ฆ where this page comes from
- alpine 3.24: man-db-doc 2.13.1-r1 ยท GPL-2.0-or-later
- arch rolling: man-db 2.13.1-2 ยท GPL-2.0-or-later AND GPL-3.0-or-later
- fedora 43: man-db 2.13.1-2.fc43 ยท GPL-2.0-or-later AND GPL-3.0-or-later
- fedora 44: man-db 2.13.1-3.fc44 ยท GPL-2.0-or-later AND GPL-3.0-or-later
- Copyright (C) 1994, 1995, Graeme W. Wilford. (Wilf.)
- Copyright (C) 2001-2019 Colin Watson
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms