web-dev-qa-db-ja.com

「man」ページを検索するパスはどのように設定されますか?

manページを見つけるために使用されるパスがどのように設定されているか、私は困惑しています。 「正しいこと」は魔法のように起こっているようです。たとえば、PATHを

/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

manページを検索したパス(man --pathに従って)は、

/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

どういうわけか、私がデフォルトのGitを「オーバーライド」しているGitのバージョンでは、組み込みGitのドキュメントよりも前に、そのドキュメントが正しく検出されています。それはどうですか?

10
orome

Manのパスは、環境変数MANPATHによって、またはPATHと/etc/manpath.configからMANPATHを構築することによって決定されます

ローカルのgit manページが最初に取得されるのは、生成されたMANPATHがPATHに存在するのと同じ順序であるため、/usr/local/git/bin PATHの先頭にある場合、manpathは(見つかった場合)一致するmanパスをMANPATHの先頭に配置します(この場合は/usr/local/git/share/man)。

MANPATHの前の方のパスが最初に検索され、man(1)が最初に一致したものを表示します。

詳細については、manpath(1)を参照してください。構成ファイルについては、manpath(5)を参照してください。

13
cjh