環境変数$MANPATH
が設定されている構成ファイルを確認するにはどうすればよいですか?値をバックトレースする方法はありますか?
find
またはgrep
を使用してファイルシステム全体をgrepできることを認識しています。ほとんどの場合、zsh
の代わりにbash
を使用しています。 Ubuntu Preciseを実行します。
他の人がすでに書いたように、UbuntuはデフォルトでMANPATH
を設定しません。 .profile
を編集して、必要に応じてMANPATH
を追加できます。しかし、Ubuntuはあなたのマンパスに関する情報をどこで取得しますか?
この情報は/etc/manpath.config
で設定されます。パッケージman-db
は、この情報を使用してmanのパスを構成します。環境変数MANPATH
は、ファイルmanpath.config
よりも優先されます。このファイルには、次の(おそらくそれ以上の)エントリがあります。
MANDATORY_MANPATH /usr/share/man
MANPATH_MAP /usr/bin /usr/man
DEFINE troff groff -mandoc
最初の行は、MANPATH
に含まれるディレクトリを自動的に生成するソフトウェアに指示します。通常、/usr/man
、/usr/share/man
などがここで設定されます。
次は、ユーザーPATH
から正しいMANPATH
へのマッピングです。ユーザーのPATH
に/usr/bin
がある場合、上記の例ではMANPATH
に/usr/man
が含まれている必要があります。
DEFINE
値には、ページャーユーティリティ用の引数とプログラムのデフォルトセットがあります。
Ubuntuはデフォルトで$MANPATH
を設定しないため、検索は~/.{ba,z}shrc
とそれに含まれるファイルに限定できます。
Manコマンドにコンパイルされた検索パスは、man -w
で見ることができます。私のシステム(12.10)では、これは/usr/local/man:/usr/local/share/man:/usr/share/man
を返します
実行してみてください
zsh -x -ls -c "exit" 2> Shell-startup-output
このコマンドの実行後、ファイルShell-startup-output
には、シェルの起動時にソースされている各ファイルが表示されます。次に、これらの各ファイルを調べて、$MANPATH$
が設定されているファイルを確認できます。
これがうまくいかない場合は、grep
またはfind
を使用するしかありません。