Как вручную установить файл справочной страницы?

44

Как установить файл справочной системы для всей системы?

Например, если у меня есть файл справочной страницы examplecommand.1, как мне установить его, чтобы я мог просто напечатать его, man examplecommandчтобы просмотреть?

Флимм
источник

Ответы:

53
  1. Сначала выясните, к какому разделу относится ваша справочная страница. Если это команда, она, вероятно, принадлежит разделу 1. Вы можете прочитать справочную страницу для manкоманды,Значок Manpage чтобы увидеть описание различных разделов и их соответствующих номеров.

  2. Скопируйте свою справочную страницу /usr/local/share/man/man1/(измените 1номер раздела, если это необходимо). Вы также можете установить его /usr/share/man/man1/, но лучше использовать localкаталог для файлов, которые установлены без использования менеджера пакетов APT:

    sudo cp examplecommand.1 /usr/local/share/man/man1/
    
  3. Запустите mandbкоманду. Это обновит manвнутреннюю базу данных:

    sudo mandb
    
  4. Это оно! Вы должны иметь возможность просматривать справочную страницу, выполнив:

    man 1 examplecommand
    

Ссылки:

Флимм
источник
1
Есть ли вариант или какова рекомендуемая практика, когда вы хотели бы избежать использования sudo?
Хорхе Букаран
@JorgeBucaran Посмотрите ответ ниже о том, как установить MANPATH, который позволяет вам размещать страницы руководства в местах, в которые вы можете писать, например, в $ HOME / lib / share / man или где-то в этом
роде
Я думаю, что вы могли бы хранить страницы man, /usr/local/manа также предлагать в отображении PATH to MANPATH /etc/manpath.config.
Ярно
10

Если вам нужно только установить man-страницу локально :

Если он MANPATHне установлен или содержит пустой компонент (т. Е. Начинается с :, заканчивается :или содержит ::), то <path>/share/manбудет автоматически производиться поиск справочных страниц, когда они <path>/binявляются частью PATH, для всех значений<path> .

Это обеспечивает очень простой способ добавления справочных страниц для локально установленного программного обеспечения. Есть некоторые детали в man manpathи /etc/manpath.config, но я не вижу упоминания об общем отображении из <path>/binв <path>/share/man.

NTC2
источник
Я добавил MANPATH=<local path to the man pages>:$MANPATHв ваш ${HOME}/.bashrc(сеансы без входа в систему) или ${HOME}/.profile(сеансы входа в систему). В моем случае я создал локальный каталог для man-страниц ${HOME}/share/man/, который имитирует классическую файловую систему Linux. Я создал ${HOME}/share/man/man.1, который затем содержит символическую ссылку на местоположение файла, examplecommand.1куда бы он не был установлен установщиком программы (префикс конфигурации). Запуск man examplecommandнаходит страницы руководства в точке. Таким образом, установка является локальной, но не общесистемной.
XavierStuvw
Это был очень интересный комментарий, и он предоставляет путь людям, которым нужно только установить свой PATH (что они уже ожидали) для локальных двоичных файлов. Однако я не думаю, что общее отображение <path>/bin-> <path>/share/manсуществует. При выполнении strace (1) manс помощью команды MANPATH=:/nonexistingdirя вижу следующее: - <path>/bin-> <path>/man Это в системе Debain Buster.
Актау
1

Ответ @ ntc2 выше - это то, на что должны смотреть люди. Я хотел добавить дополнительный комментарий, который не помещался в разделе комментариев:

Подход @ ntc2 обеспечивает путь для людей, которым нужно только установить свой PATH (что они уже ожидают) для локальных двоичных файлов.

Однако я не думаю, что общее отображение <path>/bin-> <path>/share/manсуществует для всех путей в $PATH. Кажется, что это конкретное отображение избегается, когда $PATHречь идет о $HOME/bin. При выполнении strace (1) manс помощью MANPATH=:/nonexistingdirя вижу следующие поиски:

Для любого элемента в $PATHэто не$HOME/bin

  • <path>/bin -> <path>/man
  • <path>/bin -> <path>/bin/man
  • <path>/bin -> <path>/share/man
  • <path>/bin -> <path>/bin/share/man

Для $HOME/bin

  • $HOME/bin -> $HOME/man

Я понятия не имею, почему это пропускает других. Это в системе Debian Buster. Это может отличаться в других системах.

Для меня это означает, что самый безопасный путь для установки man-страниц - <path>/manэто гарантированный поиск, если он находится в $PATH.

Актау
источник