# mandb

## NAME



           mandb - create or update the manual page index caches
    


## SYNOPSIS



           **mandb**[**-dqsucpt?V**] [**-C** _file_] [_manpath_]
           **mandb**[**-dqsut**] [**-C** _file_] **-f** _filename_ ...
    


## DESCRIPTION



           **mandb** is used to initialise or manually update **index** database
           caches.  The caches contain information relevant to the current
           state of the manual page system and the information stored within
           them is used by the man-db utilities to enhance their speed and
           functionality.
    
           When creating or updating an **index** , **mandb** will warn of bad ROFF
           .so requests, bogus manual page filenames and manual pages from
           which the **whatis** cannot be parsed.
    
           Supplying **mandb** with an optional colon-delimited path will
           override the internal system manual page hierarchy search path,
           determined from information found within the man-db configuration
           file.
    


## DATABASE CACHES



           **mandb** can be compiled with support for any one of the following
           database types.
    
           Name          Async   Filename
           ──────────────────────────────────────
           Berkeley db   Yes     _index.bt_
           GNU gdbm      Yes     _index.db_
           UNIX ndbm     No      _index.(dir|pag)_
    
           Those database types that support asynchronous updates provide
           enhanced speed at the cost of possible corruption in the event of
           unusual termination.  In an unusual case where this has occurred,
           it may be necessary to rerun **mandb** with the **-c** option to re-create
           the databases from scratch.
    


## OPTIONS



           **-d** , **--debug**
                  Print debugging information.
    
           **-q** , **--quiet**
                  Produce no warnings.
    
           **-s** , **--no-straycats**
                  Do not spend time looking for or adding information to the
                  databases regarding stray cats.
    
           **-p** , **--no-purge**
                  Do not spend time checking for deleted manual pages and
                  purging them from the databases.
    
           **-c** , **--create**
                  By default, **mandb** will try to update any previously created
                  databases.  If a database does not exist, it will create
                  it.  This option forces **mandb** to delete previous databases
                  and re-create them from scratch, and implies **--no-purge.**
                  This may be necessary if a database becomes corrupt or if a
                  new database storage scheme is introduced in the future.
    
           **-u** , **--user-db**
                  Create user databases only, even with write permissions
                  necessary to create system databases.
    
           **-t** , **--test**
                  Perform correctness checks on manual pages in the hierarchy
                  search path.  With this option, **mandb** will not alter
                  existing databases.
    
           **-f** , **--filename**
                  Update only the entries for the given filename.  This
                  option is not for general use; it is used internally by **man**
                  when it has been compiled with the **MAN_DB_UPDATES** option
                  and finds that a page is out of date.  It implies **-p** and
                  disables **-c** and **-s**.
    
           **-C** _file_ , **--config-file=**_file_
                  Use this user configuration file rather than the default of
                  _~/.manpath_.
    
           **-?** , **--help**
                  Show the usage message, then exit.
    
           **--usage**
                  Print a short usage message and exit.
    
           **-V** , **--version**
                  Show the version, then exit.
    


## EXIT STATUS



           **0** Successful program execution.
    
           **1** Usage, syntax, or configuration file error.
    
           **2** Operational error.
    
           **3** A child process failed.
    


## DIAGNOSTICS



           The following warning messages can be emitted during database
           building.
    
           **< filename>: whatis parse for page(sec) failed**
                  An attempt to extract whatis line(s) from the given
                  <filename> failed.  This is usually due to a poorly written
                  manual page, but if many such messages are emitted it is
                  likely that the system contains non-standard manual pages
                  which are incompatible with the man-db whatis parser.  See
                  the **WHATIS PARSING** section in lexgrog(1) for more
                  information.
    
           **< filename>: is a dangling symlink**
                  <filename> does not 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 non existent file.
    
           **< filename>: ignoring bogus filename**
                  The <filename> may or may not be a valid manual page but
                  its name is invalid.  This is usually due to a manual page
                  with sectional extension <x> being put in manual page
                  section <y>.
    
           **< filename_mask>: competing extensions**
                  The wildcard <filename_mask> is not unique.  This is
                  usually caused by the existence of both a compressed and
                  uncompressed version of the same manual page.  All but the
                  most recent are ignored.
    


## FILES



           _/usr/local/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.
    


## BUGS



           https://gitlab.com/man-db/man-db/-/issues
           https://savannah.nongnu.org/bugs/?group=man-db
    


* * *