MANPATH(5) /etc/man_db.conf MANPATH(5)

НАЗВАНИЕ

manpath - формат файла /etc/man_db.conf

ОПИСАНИЕ

Файл настройки manpath используется утилитами справочных страниц для доступа к пользовательским manpath во время работы; в нём определено какие иерархии справочных страниц (manpath) считать системными иерархиями, а также для них назначены каталоги хранения cat файлов.

Если установлена переменная окружения $MANPATH, то информация из /etc/man_db.conf использоваться не будет.

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.

ФОРМАТ

В данный момент распознаются следующие типы полей:

# комментарий
Пустые или начинающиеся с # строки считаются комментариями и игнорируются.
Строки в этом формате содержат manpath, которые каждый раз генерируются автоматически для включения в $MANPATH. Обычно, сюда включается /usr/man.
Строки в этом формате содержат отображение $PATH в $MANPATH. Для каждого элемента_пути, найденного в пользовательском $PATH, в $MANPATH будет добавляться manpath_элемент.
Строки в этом формате определяют, какие manpath должны считаться системными manpath, а также можно задать для каких из них нужно хранить cat файлы. Этот тип поля особенно важен, если man является setuid программой, так как (когда задаются в системном файле настройки /etc/man_db.conf, а не в персональном файле настройки пользователя .manpath) им определяется, к каким иерархиям справочных страниц имеет доступ setuid пользователь, а какие вызываются из-под обычного пользователя.

Системные иерархии справочных страниц обычно хранятся в подкаталогах /usr, например, /usr/man, /usr/local/man и /usr/X11R6/man.

Если cat страницы из определённого manpath_элемента не нужно хранить, или они будут храниться в обычном месте, то catpath_элемент можно не указывать.

Традиционное размещение cat страниц было бы невозможным для смонтированных только на чтение каталогов иерархий справочных страниц, и поэтому возможно определить любую рабочую иерархию каталогов для их хранения. Допустимый каталог можно найти поиском в Linux FSSTND по ключевому слову FSSTND.

К сожалению, требуется указать все пути системных справочных страниц, включая пути альтернативных операционных систем, такие как /usr/man/sun и все пути локалей NLS, например /usr/man/de_DE.88591.

Так как информация обрабатывается последовательно строка за строкой в порядке хранения, необходимо все manpath, которые являются субиерархиями другой иерархии, указывать в начале, иначе поиск может быть некорректным. Например, /usr/man/de_DE.88591 должно быть указано раньше, чем /usr/man.

Строки в этом формате определяют различные переменные настройки; в файле настройки по умолчанию описаны переменные, которые используются утилитами пейджера справочных страниц. Они могут содержать пути по умолчанию к различным программам (например, grep и tbl) и параметры по умолчанию для этих программ.
Строки данного формата определяют порядок поиска в справочных разделах. Если в файле настройки директивы SECTION не указаны, то по умолчанию используется:
SECTION 1 n l 8 3 0 2 5 4 9 6 7

Если указано несколько директив SECTION, то их значения объединяются в список.

Если какого-то расширения не окажется в этом списке (например, 1mh), то страница будет показана вместе с оставшимся разделом, которому принадлежит. Смысл этого в том, что нужно указывать только расширения, для которых вы бы хотели жёстко задать определённый порядок. Разделы с расширениями, как правило, указываются рядом с их основным разделом (например, "1 1mh 8 ...").

В качестве альтернативного имени этой директивы может использоваться SECTIONS.

Если ширина терминала меньше чем ширина, то cat страницы создаваться (если их нет) или отображаться не будут. Значение по умолчанию равно 80.
Если ширина терминала больше чем ширина, то cat страницы создаваться (если их нет) или отображаться не будут. Значение по умолчанию равно 80.
Если значение ширина не равно 0, то cat страницы будут всегда форматироваться для терминала данной ширины, независимо от ширины терминала, который используется на самом деле. Обычно, это значение находится в рамках между MINCATWIDTH и MAXCATWIDTH.
Этот параметр запрещает man(1) автоматически создавать cat страницы.

ОШИБКИ

Если точно не следовать правилам, описанным ранее, то утилиты пейджера справочных страниц не будут работать как ожидалось. Правила чрезмерно запутаны.

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

2022-03-17 2.10.2