Почему я не могу найти никаких страниц?
Я работаю на сервере 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
}