Warum kann ich keine Manpages finden?

Warum kann ich keine Manpages finden?

Ich arbeite an einem Power8-Server mit 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"

Keine der üblichen Manpages scheint installiert zu sein. Sogar ein einfacher Befehl wie:

man man

kehrt zurück

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

Dies gilt für eine Vielzahl anderer Tools wie ls, grep, usw. und Bibliotheksfunktionen wie usleep, printf, usw.

Ich habe überprüft, dass zumindest einige Manpages tatsächlich installiert sind:

$ 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

Übersehe ich etwas? Ist das architekturspezifisch ppc64le? Oder muss ich etwas anderes installieren, um auf diese Manpages zuzugreifen?

Aktualisieren:Wie gewünscht habe ich ausgeführt sudo mandb. Das Ergebnis war:

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

man manAn anderen derartigen Befehlen gab es keine Änderungen .

Darüber hinaus lautete die Ausgabe 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

Antwort1

Ich vermute, dass etwas mit den Caches Ihrer Manualpages nicht stimmt. Führen Sie Folgendes aus:

sudo mandb

um es zu aktualisieren. Wenn es auf Ihrem System nicht vorhanden ist, wird es erstellt.

Sie können es auch verwenden, sudo mandb -cum den alten Cache zu löschen und einen neuen zu erstellen.

Eine andere Option, die für Sie nützlich sein könnte -t, ist die Durchführung von Korrektheitsprüfungen der Handbuchseiten.

Wenn Sie einige Pakete lokal installiert haben, z. B. mit pipoder anderen Paketmanagern, ~/.local/binfügen Sie deren Manualpages erneut hinzu und führen Sie es ohne aus sudo:

mandb

Zusätzliche Schritte

Wenn die obige Anweisung bei Ihnen nicht funktioniert hat, verwenden Sie manpathdie manuelle Suchpfadsuche und stellen Sie sicher, dass dieser nicht leer ist.

Prüfen Sie anschließend, ob überhaupt ein Handbuch installiert wurde:

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

Wenn der Befehl kein Ergebnis liefert, verwenden Sie:

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

Versuchen Sie dann, mandas Handbuch zu öffnen und prüfen Sie, ob es überhaupt funktioniert:

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

Wenn Sie keine Manpage finden konnten, versuchen Sie, das Paket neu zu installieren.

Antwort2

Leider hat die akzeptierte Antwort bei mir unter Ubuntu 18 (Bionic) nicht funktioniert. Folgendes hat funktioniert:

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

Referenz:So installieren Sie Manpages unter Ubuntu Linux .

Antwort3

Auf meinem System (Ubuntu 20.04, Focal) hat GROMACS eine Variable $MANPATH erstellt, die Vorrang vor der von den Manpages verwendeten Variable hatte. Die Verwendung sudo manfunktioniert auch, aber durch Hinzufügen dieser Zeile in ~/.bashrc wurde sie dauerhaft.

unset MANPATH

Um einen Schritt weiter zu gehen, stellen Sie durch Hinzufügen dieses Elements sicher, dass sowohl GROMACS als auch Manpages nebeneinander funktionieren.

function man() {              
    unset MANPATH             
    /usr/bin/man ${@}         
    . /usr/local/gromacs/bin/GMXRC
}

verwandte Informationen