Как установить MANPATH без переопределения значений по умолчанию?

14

Я добавил дополнительные каталоги $PATH, экспортируя, PATH=/my/dirs:$PATH но я не уверен, стоит ли мне делать то же самое MANPATH. Поскольку по умолчанию MANPATHпусто, но manкоманда работает. Я нашел вызываемую команду manpathи в ее руководстве написано If $MANPATH is set, manpath will simply display its contents and issue a warning.. Означает ли это, что настройка MANPATH не является правильным способом добавления каталогов для manкоманды поиска страниц справочника?

Балки
источник

Ответы:

20

Если вы просто установите MANPATH, он переопределит значение по умолчанию, и вы потеряете доступ к стандартным справочным страницам. Например, man lsработает до настройки MANPATH, но не работает впоследствии.

Чтобы добавить каталог поиска без переопределения по умолчанию, добавьте к MANPATH двоеточие:

export MANPATH=":/path/to/custom/man"

Добавление двоеточия дает вам доступ как к стандартным системным справочным страницам, так и к пользовательским страницам, указанным в переменной MANPATH.

Этот ответ принес вам manpath (1) :

Если установлено значение $ MANPATH, manpath отображает его значение, а не определяет его на лету. Если $ MANPATH имеет префикс двоеточия, то значение переменной добавляется в список, определенный из содержимого файлов конфигурации. Если двоеточие находится в конце значения в переменной, то определенный список добавляется к содержимому переменной. Если значение переменной содержит двойное двоеточие (: :), то определенный список вставляется в середину значения между двумя двоеточиями.

maharvey67
источник
1

ИМО, вы должны добавить свои пользовательские каталоги в конце вашего пути

PATH=$PATH:/my/dirs

Это сделано для того, чтобы ваши пользовательские каталоги не пересекали системные исполняемые файлы и библиотеки и являлись незначительной проблемой безопасности.

Вы устанавливаете MANPATH таким же образом (MANPATH по умолчанию пуст).

MANPATH=$MANTPATH:/my/dirs

Вам не нужно устанавливать MANPATH с пакетами с хорошим поведением, поэтому, если он не сломан, не исправляйте его, и если он сломан, возможно, вам лучше подать отчет об ошибке;)

Добавьте это к ~ / .bashrc

export PATH=$PATH:/my/dirs
export MANPATH=$MANPATH:/my/dirs
пантера
источник
Опечатка во втором утверждении? MANPATH=$MANTPATH:/my/dirs Может быть, должно быть:MANPATH=$MANPATH:/my/dirs
Кевинарпе
Что вы имеете в виду под "хорошо подобранными пакетами"? У меня есть целый набор инструментов, которые не установлены в обычных местах (кластеры HPC часто помещают вещи в / opt). Как им зарегистрировать свои справочные страницы без использования $ MANPATH?
i_grok
«пакеты с хорошим поведением» написаны с использованием стандартных путей и переменных среды. Пакеты с плохим поведением используют нестандартные, по крайней мере для Ubuntu, пути, такие как / opt, или не используют переменные среды и, следовательно, ведут к наблюдению. «У меня есть целый набор инструментов, которые не устанавливаются в обычных местах (кластеры HPC часто помещают вещи в / opt) "
Пантера