Comment installer un fichier de page de manuel dans tout le système?
Par exemple, si j'ai un fichier de page de manuel examplecommand.1
, comment puis-je l'installer de manière à pouvoir le saisir man examplecommand
pour le visualiser?
la source
Comment installer un fichier de page de manuel dans tout le système?
Par exemple, si j'ai un fichier de page de manuel examplecommand.1
, comment puis-je l'installer de manière à pouvoir le saisir man examplecommand
pour le visualiser?
Commencez par trouver à quelle section appartient votre page de manuel. Si c'est une commande, il appartient probablement à la section 1
. Vous pouvez lire la page de manuel relative à la man
commande pour voir une description des différentes sections et leurs numéros correspondants.
Copiez votre page de manuel sur /usr/local/share/man/man1/
(remplacez 1
le numéro de votre section si nécessaire). Vous pouvez également l'installer sur /usr/share/man/man1/
, mais il est recommandé d'utiliser le local
répertoire pour les fichiers installés sans utiliser le gestionnaire de paquets APT:
sudo cp examplecommand.1 /usr/local/share/man/man1/
Exécutez la mandb
commande. Ceci mettra à jour man
la base de données interne:
sudo mandb
C'est ça! Vous devriez pouvoir voir la page de manuel en lançant:
man 1 examplecommand
man
commandemandb
commande/usr/bin/dh_installman
si vous pouvez lire Perl, installé avec le debhelper
paquet.
sudo
?/usr/local/man
ainsi que suggéré dans la cartographie PATH à MANPATH/etc/manpath.config
.Si vous devez uniquement installer la page de manuel localement :
Si
MANPATH
n'est pas défini, ou inclut un composant vide (c'est-à-dire commence par:
, se termine par:
ou contient::
), alors les<path>/share/man
pages de manuel seront automatiquement recherchées chaque fois qu'elle<path>/bin
fait partie dePATH
, pour toutes les valeurs de<path>
.Cela fournit un moyen très simple d’ajouter des pages de manuel pour les logiciels installés localement. Il y a quelques détails dans
man manpath
et/etc/manpath.config
, mais je ne vois aucune mention du mappage générique de<path>/bin
à<path>/share/man
.la source
MANPATH=<local path to the man pages>:$MANPATH
à votre${HOME}/.bashrc
(sessions non-connexion) ou${HOME}/.profile
(sessions de connexion). Dans mon cas, j’ai créé un répertoire local pour les pages de manuel${HOME}/share/man/
, qui imite le système de fichiers Linux classique. J'ai créé${HOME}/share/man/man.1
, qui contient ensuite un lien symbolique vers l'emplacement du fichier, à l'emplacementexamplecommand.1
indiqué par l'installateur du programme (le préfixe de configuration). Le lancementman examplecommand
trouve les pages de manuel en point. De cette manière, l'installation est locale, mais pas à l'échelle du système.<path>/bin
-><path>/share/man
existe. Lors de l'exécution de strace (1)man
avecMANPATH=:/nonexistingdir
, je vois ce qui suit: -<path>/bin
-><path>/man
C'est sur un système Debain Buster.La réponse de @ ntc2 ci-dessus est celle que les gens devraient regarder. Je voulais ajouter un commentaire supplémentaire qui ne correspondait pas à la section commentaires:
L'approche de @ ntc2 fournit un chemin aux personnes n'ayant besoin que de définir leur PATH (ce qu'elles attendent déjà) pour les fichiers binaires locaux.
Cependant, je ne pense pas que le mappage générique
<path>/bin
-><path>/share/man
existe pour tous les chemins$PATH
. Il semble que ce mappage spécifique soit évité lorsque le$PATH
problème en question l’est$HOME/bin
. Lors de l'exécution de strace (1)man
avecMANPATH=:/nonexistingdir
, je vois les recherches suivantes:Pour tout élément
$PATH
qui n'est pas$HOME/bin
<path>/bin
-><path>/man
<path>/bin
-><path>/bin/man
<path>/bin
-><path>/share/man
<path>/bin
-><path>/bin/share/man
Pour
$HOME/bin
$HOME/bin
->$HOME/man
Je ne sais pas pourquoi il saute les autres. Ceci est sur un système Debian Buster. Cela peut être différent sur d'autres systèmes.
Pour moi, cela signifie que le chemin le plus sûr pour installer des pages de manuel est
<path>/man
, car il est garanti de le trouver s'il se trouve dans le$PATH
.la source