Macaulay 2 は大変な環境変数を設定していきました
昨日、ふと Terminal で
man cp
とやってみたのだが、お返事が
No manual entry for cp
だって…お姉さんびっくりだぁ!
…と、ホントにびっくりした。一体どうした?cp コマンド以外もすべて No manual entry である。いつの間にこんなことに…
で、UNIX 入門書を震える指でめくりつつ調べてみると、どうやら /usr/share/man/ 以下に man の中身はちゃんといらっしゃるようだ。よって、環境設定 MANPATH の値がマズいことになっている予感がしてきた。しかし、誰がそんな「マズいこと」をやらかした?犯人を探しに ~/.cshrc を覗いてみると*1:
## Macaulay 2 start (中略) if ( $?MANPATH == 1 ) then switch ("$MANPATH") case "/Applications/Macaulay2-0.9.95/share/man": case "/Applications/Macaulay2-0.9.95/share/man:*": case "*:/Applications/Macaulay2-0.9.95/share/man": case "*:/Applications/Macaulay2-0.9.95/share/man:*": breaksw case "": setenv MANPATH "/Applications/Macaulay2-0.9.95/share/man" breaksw default: setenv MANPATH "/Applications/Macaulay2-0.9.95/share/man:$MANPATH" breaksw endsw else setenv MANPATH "/Applications/Macaulay2-0.9.95/share/man" endif (中略) ## Macaulay 2 end
と書きこまれているのを見つけた*2。先日インストールした Macaulay 2 だが、こんなところにも手を加えていたようで…これを見ると、環境変数 MANPATH が未設定の場合(私の環境では多分そうだったのだろう)、「/Applications/Macaulay2-0.9.95/share/man」を唯一の値として設定するようである。そして、環境変数 MANPATH の値は /usr/share/misc/man.conf に書かれている設定を上書きしてしまう。……というカラクリかな?
対処として、要は MANPATH に /usr/local/share/man や /usr/share/man も一緒に設定してやればきちんと行くように思われたので、そのようにして、実際、問題は解決した。man ページが戻ってきたよ!おかげで man man して、man ページの検索パスについての説明を読んで、改めて上に書いたように原因と対策を考察したりできる訳です。いやはや、勉強になりました……