# man > manpath(5)

[_MANPATH_(5)](https://www.chedong.com/phpMan.php/man/MANPATH/5/markdown)                               /etc/manpath.config                              [_MANPATH_(5)](https://www.chedong.com/phpMan.php/man/MANPATH/5/markdown)

## NAME
       manpath - format of the /etc/manpath.config file

## DESCRIPTION
       The manpath configuration file is used by the manual page utilities to assess users' manpaths
       at run time, to indicate which manual page hierarchies (manpaths) are to be treated as system
       hierarchies and to assign them directories to be used for storing cat files.

       If  the  environment  variable  $**MANPATH  **is  already  set,  the information contained within
       /etc/manpath.config will not override it.

## SEARCH PATH
       By default, man-db examines the user's $**PATH**.  For each _path_element_  found  there,  it  adds
       _manpath_element_ to the search path.

       If  there  is no **MANPATH_MAP **line in the configuration file for a given _path_element_, then it
       adds all of _path_element/../man_, _path_element/man_, _path_element/../share/man_,  and  _path_ele‐_
       _ment/share/man_ that exist as directories to the search path.

       It then adds any **MANDATORY_MANPATH **entries from the configuration file to the search path.

       Finally,  if  the  **--systems  **option is used or the $**SYSTEM **environment variable is set, then
       that should consist of a sequence of operating system names separated by  commas  or  colons.
       This acts as a template, expanding the search path once more to allow access to other operat‐
       ing systems' manual pages: for each system name, man-db looks for that name as a subdirectory
       of  each entry in the search path, and adds it to the final search path if it exists.  A sys‐
       tem name of **man **inserts the normal search path without subdirectories.  For example,  if  the
       search  path  would  otherwise have been _/usr/share/man:/usr/local/man_, and $**SYSTEM **is set to
       _newOS:man_, then the final search path  will  be  _/usr/share/man/newOS:/usr/share/man:/usr/lo‐_
       _cal/man/newOS:/usr/local/man_.

       The  $**MANPATH **environment variable overrides man-db's default manual page search paths.  Most
       users should not need to set it.  Its syntax is similar to the $**PATH **environment variable: it
       consists of a sequence of directory names separated by  colons.   It  overrides  the  default
       search path described above.

       If  the  value  of $**MANPATH **starts with a colon, then the default search path is added at its
       start.  If the value of $**MANPATH **ends with a colon, then the default search path is added  at
       its end.  If the value of $**MANPATH **contains a double colon (**::**), then the default search path
       is inserted in the middle of the value, between the two colons.

## FORMAT
       The following field types are currently recognised:

       **# _**comment_
              Blank lines or those beginning with a **# **will be treated as comments and ignored.

       **MANDATORY_MANPATH _**manpath_element_
              Lines  of  this  form  indicate  manpaths  that every automatically generated $**MANPATH**
              should contain.  This will typically include _/usr/man_.

       **MANPATH_MAP _**path_element_ _manpath_element_
              Lines of this form set up $**PATH **to $**MANPATH **mappings.  For each _path_element_ found  in
              the user's $**PATH**, _manpath_element_ will be added to the $**MANPATH**.

       **MANDB_MAP _**manpath_element_ [ _catpath_element_ ]
              Lines  of  this form indicate which manpaths are to be treated as system manpaths, and
              optionally where their cat files should be stored.  This field  type  is  particularly
              important  if  **man  **is  a  setuid  program,  as (when in the system configuration file
              /etc/manpath.config rather than the per-user configuration file .manpath) it indicates
              which manual page hierarchies to access as the setuid user and which as  the  invoking
              user.

              The  system  manual  page  hierarchies  are  usually  those  stored under _/usr_ such as
              _/usr/man_, _/usr/local/man_ and _/usr/X11R6/man_.

              If cat pages from a particular _manpath_element_ are not to  be  stored  or  are  to  be
              stored in the traditional location, _catpath_element_ may be omitted.

              Traditional  cat placement would be impossible for read only mounted manual page hier‐
              archies and because of this it is possible to specify any  valid  directory  hierarchy
              for  their  storage.   To  observe  the **Linux FSSTND **the keyword **FSSTND **can be used in
              place of an actual directory.

              Unfortunately, it is necessary to specify **all **system man tree paths, including  alter‐
              nate  operating  system  paths  such  as _/usr/man/sun_ and any **NLS locale **paths such as
              _/usr/man/de_DE.88591_.

              As the information is parsed line by line in the order written, it  is  necessary  for
              any manpath that is a sub-hierarchy of another hierarchy to be listed first, otherwise
              an  incorrect  match  will be made.  An example is that _/usr/man/de_DE.88591_ must come
              before _/usr/man_.

       **DEFINE _**key_ _value_
              Lines of this form define miscellaneous configuration variables; see the default  con‐
              figuration  file for those variables used by the manual pager utilities.  They include
              default paths to various programs (such as _grep_ and _tbl_), and default  sets  of  argu‐
              ments to those programs.

       **SECTION _**section_ ...
              Lines  of  this form define the order in which manual sections should be searched.  If
              there are no **SECTION **directives in the configuration file, the default is:

                     SECTION 1 n l 8 3 0 2 3type 5 4 9 6 7

              If multiple **SECTION **directives are given, their section lists will be concatenated.

              If a particular extension is not in this list (say, 1mh) it will be displayed with the
              rest of the section it belongs to.  The effect of this is that you only  need  to  ex‐
              plicitly  list  extensions if you want to force a particular order.  Sections with ex‐
              tensions should usually be adjacent to their main section (e.g. "1 1mh 8 ...").

              **SECTIONS **is accepted as an alternative name for this directive.

       **MINCATWIDTH _**width_
              If the terminal width is less than _width_, cat pages will not be created  (if  missing)
              or displayed.  The default is 80.

       **MAXCATWIDTH _**width_
              If  the  terminal width is greater than _width_, cat pages will not be created (if miss‐
              ing) or displayed.  The default is 80.

       **CATWIDTH _**width_
              If _width_ is non-zero, cat pages will always be formatted for a terminal of  the  given
              width,  regardless  of  the width of the terminal actually being used.  This overrides
              **MINCATWIDTH **and **MAXCATWIDTH**.

       **NOCACHE**
              This flag prevents [**man**(1)](https://www.chedong.com/phpMan.php/man/man/1/markdown) from creating cat pages automatically.

## BUGS
       Unless the rules above are followed and observed precisely, the manual pager  utilities  will
       not function as desired.  The rules are overly complicated.

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

2.12.0                                       2023-09-23                                   [_MANPATH_(5)](https://www.chedong.com/phpMan.php/man/MANPATH/5/markdown)
