Comment est défini le chemin de recherche des pages de manuel?

10

Je suis perplexe quant à la façon dont le chemin utilisé pour trouver les manpages est défini. La "bonne chose" semble se produire comme par magie. Par exemple, si vous changez mon CHEMIN de

/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin:/usr/local/git/bin:/usr/texbin

à

/usr/local/git/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin:/usr/local/git/bin:/usr/texbin

le chemin recherché pour les manpages (selon man --path) change de

/usr/share/man:/usr/local/share/man:/opt/X11/share/man:/usr/local/git/share/man:/usr/texbin/man

à

/usr/local/git/share/man:/usr/share/man:/usr/local/share/man:/opt/X11/share/man:/usr/texbin/man

D'une manière ou d'une autre, la version de Git avec laquelle je "remplace" le Git par défaut, est d'avoir sa documentation correctement trouvée avant toute documentation pour tout Git intégré. Comment cela se passe-t-il?

orome
la source

Réponses:

13

Le chemin pour l'homme est déterminé soit par la variable env MANPATH, soit en construisant un MANPATH à partir de PATH et /etc/manpath.config

La raison pour laquelle vos pages de manuel git locales sont récupérées en premier est parce que le MANPATH généré est dans le même ordre que celui présent dans PATH, donc votre /usr/local/git/binau début de PATH signifie que manpath placera (s'il le trouve) le chemin de l'homme correspondant à le début de MANPATH (dans ce cas, /usr/local/git/share/man).

Les chemins qui sont plus tôt dans votre MANPATH sont recherchés en premier et man (1) affichera la première correspondance.

Pour plus d'informations à ce sujet, voir manpath (1) et pour le fichier de configuration, voir manpath (5)

cjh
la source
1
J'ai (sur Darwin 12.2.0, OS X 10.8.2, bash 3.2.48 (1)), /etc/manpaths, /etc/man.confet plusieurs fichiers /etc/manpaths.d. Comment ces éléments sont-ils intégrés au processus de construction de MANPATH?
orome
@raxacoricofallapatorius ce sont spécifiques à la plate-forme, donc je ne suis pas sûr, votre question n'a pas spécifié la plate-forme.
cjh
1
C'est une question distincte alors.
orome