# manpath

## NAME



           manpath - format of the /usr/local/etc/man_db.conf 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 /usr/local/etc/man_db.conf 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_element/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 operating 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 system 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/local/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 /usr/local/etc/man_db.conf 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 hierarchies 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 alternate 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 configuration 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 arguments 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 explicitly
                  list extensions if you want to force a particular order.
                  Sections with extensions 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 missing) 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) 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
    


* * *