Comment installer manuellement un fichier de page de manuel?

44

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 examplecommandpour le visualiser?

Flimm
la source

Réponses:

53
  1. 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 mancommandeIcône de page de manuel pour voir une description des différentes sections et leurs numéros correspondants.

  2. Copiez votre page de manuel sur /usr/local/share/man/man1/(remplacez 1le 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 localrépertoire pour les fichiers installés sans utiliser le gestionnaire de paquets APT:

    sudo cp examplecommand.1 /usr/local/share/man/man1/
    
  3. Exécutez la mandbcommande. Ceci mettra à jour manla base de données interne:

    sudo mandb
    
  4. C'est ça! Vous devriez pouvoir voir la page de manuel en lançant:

    man 1 examplecommand
    

Les références:

Flimm
la source
1
Existe-t-il une option ou quelle est la pratique recommandée lorsque vous souhaitez éviter d'utiliser sudo?
Jorge Bucaran
@JorgeBucaran Voir la réponse ci-dessous sur la façon de définir MANPATH, ce qui vous permet de placer des pages de manuel dans des espaces où vous pouvez écrire, par exemple $ HOME / lib / share / man ou un endroit comme celui-ci
nealmcb
Je pense que vous pourriez stocker les pages de manuel sous /usr/local/manainsi que suggéré dans la cartographie PATH à MANPATH /etc/manpath.config.
jarno
10

Si vous devez uniquement installer la page de manuel localement :

Si MANPATHn'est pas défini, ou inclut un composant vide (c'est-à-dire commence par :, se termine par :ou contient ::), alors les <path>/share/manpages de manuel seront automatiquement recherchées chaque fois qu'elle <path>/binfait partie de PATH, 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 manpathet /etc/manpath.config, mais je ne vois aucune mention du mappage générique de <path>/binà <path>/share/man.

ntc2
la source
J'ai ajouté 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'emplacement examplecommand.1indiqué par l'installateur du programme (le préfixe de configuration). Le lancement man examplecommandtrouve les pages de manuel en point. De cette manière, l'installation est locale, mais pas à l'échelle du système.
XavierStuvw le
C'était un commentaire très intéressant et il offrait un chemin aux personnes n'ayant besoin que de définir leur PATH (ce à quoi elles s'attendent déjà) pour les binaires locaux. Cependant, je ne pense pas que le mappage générique <path>/bin-> <path>/share/manexiste. Lors de l'exécution de strace (1) manavec MANPATH=:/nonexistingdir, je vois ce qui suit: - <path>/bin-> <path>/man C'est sur un système Debain Buster.
Aktau
1

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/manexiste pour tous les chemins $PATH. Il semble que ce mappage spécifique soit évité lorsque le $PATHproblème en question l’est $HOME/bin. Lors de l'exécution de strace (1) manavec MANPATH=:/nonexistingdir, je vois les recherches suivantes:

Pour tout élément $PATHqui 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.

Aktau
la source