Wie installiere ich eine Manpage-Datei manuell?

44

Wie installiere ich eine Manpage-Datei systemweit?

Wenn ich zum Beispiel eine Manpage-Datei habe examplecommand.1, wie installiere ich sie, damit ich sie nur man examplecommandanzeigen kann?

Flimm
quelle

Antworten:

53
  1. Finden Sie zunächst heraus, zu welchem ​​Abschnitt Ihre Manpage gehört. Wenn es ein Befehl ist, gehört er wahrscheinlich zu Abschnitt 1. Sie können die Manpage für den manBefehlManpage-Symbol lesen , um eine Beschreibung der verschiedenen Abschnitte und ihrer entsprechenden Nummern zu erhalten.

  2. Kopieren Sie Ihre Manpage nach /usr/local/share/man/man1/(ändern 1Sie gegebenenfalls Ihre Abschnittsnummer). Sie können es auch installieren, es /usr/share/man/man1/wird jedoch empfohlen, das localVerzeichnis für Dateien zu verwenden, die ohne den APT-Paketmanager installiert werden:

    sudo cp examplecommand.1 /usr/local/share/man/man1/
    
  3. Führen Sie den mandbBefehl aus. Dadurch wird mandie interne Datenbank des Updates aktualisiert :

    sudo mandb
    
  4. Das ist es! Sie sollten in der Lage sein, die Manpage anzuzeigen, indem Sie Folgendes ausführen:

    man 1 examplecommand
    

Verweise:

Flimm
quelle
1
Gibt es eine Option oder was ist die empfohlene Vorgehensweise, wenn Sie die Verwendung vermeiden möchten sudo?
Jorge Bucaran
@JorgeBucaran Siehe Antwort unten wie man Satz MANPATH, die Sie manuell Seiten in Räumen platzieren können Sie zB $ HOME / lib / share / Mann oder irgendwo wie dieses schreiben kann
nealmcb
Ich denke, Sie könnten die Manpages unter /usr/local/manPATH to MANPATH Mapping speichern /etc/manpath.config.
Jarno
10

Wenn Sie die Manpage nur lokal installieren müssen :

Wenn MANPATHes nicht gesetzt ist oder eine leere Komponente enthält (dh beginnt mit :, endet mit :oder enthält ::), <path>/share/manwird automatisch nach Manpages gesucht, wann immer <path>/binein Teil von PATH, nach allen Werten von<path> .

Dies bietet eine sehr einfache Möglichkeit, Manpages für lokal installierte Software hinzuzufügen. Es gibt einige Details in man manpathund /etc/manpath.config, aber ich sehe keine Erwähnung der generischen Zuordnung von <path>/binbis <path>/share/man.

ntc2
quelle
Ich habe an MANPATH=<local path to the man pages>:$MANPATHIhre ${HOME}/.bashrc(Nicht-Anmeldesitzungen) oder ${HOME}/.profile(Anmeldesitzungen) angehängt . In meinem Fall habe ich ein lokales Verzeichnis für ${HOME}/share/man/Manualpages eingerichtet, das das klassische Linux-Dateisystem nachahmt. Ich habe erstellt ${HOME}/share/man/man.1, der dann einen symbolischen Link zum Speicherort der Datei enthält, examplecommand.1wo auch immer das Programm-Installationsprogramm sie abgelegt hat (das configure-Präfix). Beim Starten werden man examplecommanddie Manpages in Punkt gefunden. Auf diese Weise erfolgt die Installation lokal, jedoch nicht systemweit.
XavierStuvw
Dies war ein sehr interessanter Kommentar und bietet einen Pfad für Benutzer, die nur ihren PATH (den sie bereits erwarten) für lokale Binärdateien festlegen müssen. Ich glaube jedoch nicht, dass das generische Mapping <path>/bin-> <path>/share/manexistiert. Wenn ich Strace (1) manmit durchführe MANPATH=:/nonexistingdir, sehe ich Folgendes: - <path>/bin-> <path>/man Dies ist auf einem Debain Buster-System.
Aktau
1

Die Antwort von @ ntc2 oben ist die, die man sich ansehen sollte. Ich wollte einige zusätzliche Kommentare hinzufügen, die nicht in den Kommentarbereich passen:

Der Ansatz von @ ntc2 bietet einen Pfad für Benutzer, die nur ihren PATH (den sie bereits erwarten) für lokale Binärdateien festlegen müssen.

Ich glaube jedoch nicht, dass das generische Mapping <path>/bin-> <path>/share/manfür alle Pfade in existiert $PATH. Es scheint, als würde diese spezifische Zuordnung vermieden, wenn dies der $PATHFall ist $HOME/bin. Wenn strace (1) auf die Durchführung manmit MANPATH=:/nonexistingdir, ich folgende Lookups sehen:

Für jedes Element ist $PATHdas nicht$HOME/bin

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

Zum $HOME/bin

  • $HOME/bin -> $HOME/man

Ich habe keine Ahnung, warum es die anderen überspringt. Dies ist auf einem Debian Buster-System. Bei anderen Systemen kann dies anders sein.

Für mich bedeutet dies, dass der sicherste Pfad für die Installation von man-pages ist <path>/man, da er garantiert in der gefunden wird $PATH.

Aktau
quelle