manpath

man pageを探すパス。コマンドラインで

$ manpath

と打つことで確かめることができる。

システムの設定は/etc/man.configとか/etc/man.confなどに書かれている。

内容は例えばhttp://linux.vbird.org/linux_basic/0310vi/man.config

以下のディレクトリはデフォルトでMANPATHに入っている。

# Every automatically generated MANPATH includes these fields
#
MANPATH /usr/man
MANPATH /usr/share/man
MANPATH /usr/local/man
MANPATH /usr/local/share/man
MANPATH /usr/X11R6/man

また/dir/bin/fooがPATHにあるとき、man fooとうつと、/dir/manから探してくれる。

# If people ask for "man foo" and have "/dir/bin/foo" in their PATH
# and the docs are found in "/dir/man", then no mapping is required.

/dir/share/manから探してくれるかはディストリビューションに依っているっぽい。OS Xでは探してくれて、CentOS 6では探してくれなかった。

結構buildするとshare/manに配置されることがあると思うが……。./configureのときに--mandir=オプションなどを使って、manのインストール先を変更できる。

manの検索場所は環境変数MANPATHで追加することができる。

$ echo $MANPATH

でMANPATHが空だったとしても

$ export MANPATH="/dir/share/man"

とやってはいけない。こうすると/dir/share/manしか探してくれなくなる。

$ export MANPATH="/dir/share/man:"

と最後にコロンを置くか

$ export MANPATH="/dir/man:${MANPATH}"

とすると良いだろう。

PATHを見て、MANPATHを追加するスクリプトをドットファイルに書いておいても良いかも。

$ man -d foo

でどのように検索しているかがわかる。