Почему я не могу найти никаких страниц?

Я работаю на сервере Power8 под управлением Ubuntu 16.04.2 LTS:

$ uname -a    
Linux power 4.4.0-75-generic #96-Ubuntu SMP Thu Apr 20 09:55:30 UTC 2017 ppc64le ppc64le ppc64le GNU/Linux

$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.2 LTS"

Ни один из обычных man-страниц, кажется, не установлен. Даже простая команда вроде:

man man

возвращается

No manual entry for man
See 'man 7 undocumented' for help when manual pages are not available.

Это касается множества других инструментов, таких как ls, grep и т. д. и библиотечные функции, такие как usleep, printf, и так далее.

Я проверил, что по крайней мере некоторые man-страницы действительно установлены:

$ dpkg -l | grep -i manpages
ii  manpages                           4.04-2                                     all          Manual pages about using a GNU/Linux system
ii  manpages-dev                       4.04-2                                     all          Manual pages about using GNU/Linux for development
ii  manpages-posix                     2013a-1                                    all          Manual pages about using POSIX system
ii  manpages-posix-dev                 2013a-1                                    all          Manual pages about using a POSIX system for development

Я что-то пропустил? Это специфично для ppc64le архитектура? Или я могу / должен установить что-то еще для доступа к этим страницам?

Обновление: по запросу я побежал sudo mandb, Результат был:

0 man subdirectories contained newer manual pages.
0 manual pages were added.
0 stray cats were added.
2 old database entries were purged.

Там не было никаких изменений в man man и другие подобные команды.

Кроме того, выход manpath было:

$ manpath -g
/usr/man:/usr/share/man:/usr/local/man:/usr/local/share/man:/usr/X11R6/man:/opt/man
$ manpath -c
/var/cache/man/oldlocal:/var/cache/man/local:/var/cache/man

3 ответа

Решение

Я думаю, что-то не так с вашими кешами страниц руководства, запустите:

sudo mandb

чтобы обновить его, если он не существует в вашей системе, он будет создан.

Вы также можете использовать sudo mandb -c Для удаления старого кеша и создания нового.

Другой вариант, который может быть полезен для вас, -t, он выполняет проверки правильности на страницах руководства.

Если у вас есть несколько пакетов, установленных локально, например, используя pip или другие менеджеры пакетов в ~/.local/bin затем добавить свои справочные страницы еще раз запустить его без sudo:

mandb

Дополнительные шаги

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

Затем проверьте, установлено ли какое-либо руководство вообще:

$ man -w man
/usr/share/man/man1/man.1.gz

Если у команды нет результата, используйте:

$ file /usr/share/man/man1/man.1.gz
/usr/share/man/man1/man.1.gz: gzip compressed data, max compression, from Unix

Тогда попробуй man чтобы открыть руководство, посмотрите, работает ли оно вообще:

man /usr/share/man/man1/man.1.gz

Если вы не обнаружили никакой справочной страницы, попробуйте переустановить этот пакет.

К сожалению, принятый ответ не сработал для меня на Ubuntu 18 (Bionic). Вот что сработало:

       $ sudo apt install man-db manpages-posix manpages-dev manpages-posix-dev
$ sudo mandb

Ссылка: Как установить справочные страницы в Ubuntu Linux.

В моей системе (Ubuntu 20.04, Focal) GROMACS создал переменную $MANPATH, которая имела приоритет над той, которая используется справочными страницами. С использованием sudo manтоже работает, но добавление этой строки в ~/.bashrc сделало ее постоянной.

      unset MANPATH

Чтобы сделать еще один шаг, добавление этого вместо этого гарантирует, что и GROMACS, и справочные страницы будут работать вместе.

      function man() {              
    unset MANPATH             
    /usr/bin/man ${@}         
    . /usr/local/gromacs/bin/GMXRC
}
Другие вопросы по тегам