DOKK / manpages / debian 12 / man-db / manpath.5.ru
MANPATH(5) /etc/manpath.config MANPATH(5)

НАЗВАНИЕ

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

ОПИСАНИЕ

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

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

ПУТЬ ПОИСКА

ПО умолчанию, man-db проверяет $PATH пользователя. Для каждого найденного там элемента_пути, она добавляет элемент_manpath в путь поиска.

Если в файле настроек нет строки MANPATH_MAP для данного элемента_пути, то в путь поиска добавляются элемент_пути/../man, элемент_пути/man, элемент_пути/../share/man и элемент_пути/share/man, если они существуют в виде каталогов.

После этого в путь поиска добавляются все элементы MANDATORY_MANPATH из файла настроек.

И, наконец, если указан параметр --systems или задана переменная окружения $SYSTEM, то они должны состоять из последовательности имён операционных систем, разделённых запятыми или двоеточиями. Их значения служат шаблонами, расширяющими путь поиска ещё больше, предоставляя доступ к справочным страницам других операционных систем: для каждого имени системы, man-db ищет подкаталог с таким именем в каждом элементе пути поиска, и если он существует, то добавляет его в окончательный путь поиска. Системное имя man вставляется в обычный путь поиска без подкаталогов. Например. если имеется путь поиска /usr/share/man:/usr/local/man, и $SYSTEM равна newOS:man, то окончательный путь поиска будет /usr/share/man/newOS:/usr/share/man:/usr/local/man/newOS:/usr/local/man.

Переменная окружения $MANPATH заменяет в man-db пути поиска страниц по умолчанию. Большинству пользователей не требуется её задавать. Её синтаксис похож на переменную окружения $PATH: значение состоит из последовательности имён каталогов, разделённых двоеточиями. Оно заменяет путь поиска по умолчанию, описанное выше.

Если значение $MANPATH начинается с двоеточия, то оно добавляется в конец пути поиска по умолчанию. Если значение $MANPATH оканчивается двоеточием, то оно добавляется в начало пути поиска по умолчанию. Если значение $MANPATH содержит два двоеточия подряд (::), то путь поиска по умолчанию вставляется в середину значения между этими двоеточиями.

ФОРМАТ

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

# комментарий
Пустые или начинающиеся с # строки считаются комментариями и игнорируются.
Строки в этом формате содержат manpath, которые каждый раз генерируются автоматически для включения в $MANPATH. Обычно, сюда включается /usr/man.
Строки в этом формате содержат отображение $PATH в $MANPATH. Для каждого элемента_пути, найденного в пользовательском $PATH, в $MANPATH будет добавляться manpath_элемент.
Строки в этом формате определяют, какие manpath должны считаться системными manpath, а также можно задать для каких из них нужно хранить cat файлы. Этот тип поля особенно важен, если man является setuid программой, так как (когда задаются в системном файле настройки /etc/manpath.config, а не в персональном файле настройки пользователя .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 3type 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/man-db/man-db/-/issues
https://savannah.nongnu.org/bugs/?group=man-db

2023-01-08 2.11.2