Jak ustawiona jest ścieżka wyszukiwania stron „man”?

10

Zastanawia mnie to, jak ustawiona jest ścieżka wyszukiwania manstron. „Właściwa rzecz” wydaje się magiczna. Na przykład, jeśli zmień moją ŚCIEŻKĘ z

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

do

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

ścieżka wyszukiwania manstron (według man --path) zmienia się od

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

do

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

W jakiś sposób wersja Gita, z którą „zastępuję” domyślnego Gita, ma poprawną dokumentację przed jakąkolwiek dokumentacją dla jakiegokolwiek wbudowanego Gita. Jak to się dzieje?

orome
źródło

Odpowiedzi:

13

Ścieżka dla man jest określana albo przez zmienną env MANPATH, albo przez zbudowanie MANPATH z PATH i /etc/manpath.config

Powodem, dla którego twoje lokalne strony podręcznika git są pobierane jako pierwsze, jest to, że wygenerowana MANPATH jest w tej samej kolejności w PATH, więc twoja /usr/local/git/binna początku PATH oznacza, że ​​ścieżka man (jeśli może ją znaleźć) umieści pasującą ścieżkę man w początek MANPATH (w tym przypadku, /usr/local/git/share/man).

Ścieżki, które są wcześniej w MANPATH, są wyszukiwane jako pierwsze, a man (1) wyświetli pierwsze dopasowanie.

Więcej informacji na ten temat znajduje się w manpath (1), a plik konfiguracyjny w manpath (5)

cjh
źródło
1
Mam (na Darwin 12.2.0, OS X 10.8.2, bash 3.2.48 (1)) /etc/manpaths, /etc/man.conforaz w kilku plikach /etc/manpaths.d. Jak mają się one do procesu budowania MANPATH?
orome
@raxacoricofallapatorius są one specyficzne dla platformy, więc nie jestem pewien, twoje pytanie nie określało platformy.
cjh
1
To osobne pytanie .
orome