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 examplecommand
anzeigen kann?
quelle
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 examplecommand
anzeigen kann?
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 man
Befehl lesen , um eine Beschreibung der verschiedenen Abschnitte und ihrer entsprechenden Nummern zu erhalten.
Kopieren Sie Ihre Manpage nach /usr/local/share/man/man1/
(ändern 1
Sie gegebenenfalls Ihre Abschnittsnummer). Sie können es auch installieren, es /usr/share/man/man1/
wird jedoch empfohlen, das local
Verzeichnis für Dateien zu verwenden, die ohne den APT-Paketmanager installiert werden:
sudo cp examplecommand.1 /usr/local/share/man/man1/
Führen Sie den mandb
Befehl aus. Dadurch wird man
die interne Datenbank des Updates aktualisiert :
sudo mandb
Das ist es! Sie sollten in der Lage sein, die Manpage anzuzeigen, indem Sie Folgendes ausführen:
man 1 examplecommand
man
Befehlmandb
Befehl/usr/bin/dh_installman
wenn Sie Perl lesen können, wird mit dem debhelper
Paket installiert .
sudo
?/usr/local/man
PATH to MANPATH Mapping speichern/etc/manpath.config
.Wenn Sie die Manpage nur lokal installieren müssen :
Wenn
MANPATH
es nicht gesetzt ist oder eine leere Komponente enthält (dh beginnt mit:
, endet mit:
oder enthält::
),<path>/share/man
wird automatisch nach Manpages gesucht, wann immer<path>/bin
ein Teil vonPATH
, 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 manpath
und/etc/manpath.config
, aber ich sehe keine Erwähnung der generischen Zuordnung von<path>/bin
bis<path>/share/man
.quelle
MANPATH=<local path to the man pages>:$MANPATH
Ihre${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.1
wo auch immer das Programm-Installationsprogramm sie abgelegt hat (das configure-Präfix). Beim Starten werdenman examplecommand
die Manpages in Punkt gefunden. Auf diese Weise erfolgt die Installation lokal, jedoch nicht systemweit.<path>/bin
-><path>/share/man
existiert. Wenn ich Strace (1)man
mit durchführeMANPATH=:/nonexistingdir
, sehe ich Folgendes: -<path>/bin
-><path>/man
Dies ist auf einem Debain Buster-System.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/man
für alle Pfade in existiert$PATH
. Es scheint, als würde diese spezifische Zuordnung vermieden, wenn dies der$PATH
Fall ist$HOME/bin
. Wenn strace (1) auf die Durchführungman
mitMANPATH=:/nonexistingdir
, ich folgende Lookups sehen:Für jedes Element ist
$PATH
das 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
.quelle