
Scientific Linux 5.5 インストールでは、$MANPATH が設定されていません。環境モジュールをインストールしているので、$MANPATH が上書きされる可能性がありますが、それについてはよくわかりません。そこで、私の主な質問は、/etc/man.config がどの時点で解釈されて $MANPATH が形成されるかということです。bash シェル自体 (ハードコード) ですか、それともログイン時にソースとなるファイル (例: /etc/profile) ですか。/etc/man.config のどのファイルにも、/etc の依存関係が見つかりません。
環境モジュールが $MANPATH を混乱させていると考える理由は、システムにログインした後、エントリが次の 1 つだけであることです。
# manpath
/cm/local/apps/environment-modules/3.2.6/man
編集:
その間、最初の回答に関して、私はこれを試しました:
# find . -type f -exec fgrep -l -i manpath {} \;
./profile.d/man.sh
./profile.d/man.csh
./man.config
さて、これが
# cat /etc/profile.d/man.sh
export MANPATH=:ignore:/cm/local/apps/environment-modules/3.2.6/man
このファイルを削除すると、少なくとも $MANPATH に "/usr/man" が表示されますが、これは /etc/man.config で定義されているもののほんの一部にすぎません。したがって、 /etc/man.config はまだ完全には処理されていないと思います。 /etc/profile.d/man.sh を次のように変更しても効果はありませんでした。
# cat /etc/profile.d/man.sh
export MANPATH=:ignore:/cm/local/apps/environment-modules/3.2.6/man:$MANPATH
# echo $MANPATH
ignore:/cm/local/apps/environment-modules/3.2.6/man:
答え1
解決策は次のとおりです: $MANPATH が設定されている場合、マニュアルページのデフォルト パスが上書きされます。したがって、$MANPATH の設定を解除するとデフォルト パスが表示され、コマンド「manpath」を実行するだけです:
/usr/local/share/man:/usr/share/man/en:/usr/share/man:/usr/man:/usr/local/man
/etc/profile.d/man.shの内容も正しい。$MANPATH変数の先頭にコロンを付けると、デフォルトのmanpathが上書きされるのを防ぐことができます。これが実際の解決策です。私の問題は、1 つの環境モジュールが先頭のコロンなしで $MANPATH 変数に手動パスを追加したため、デフォルトのマニュアル ページが利用できなくなったことです。
答え2
まあ、私はあなたの答えフィールドについては、答えはわかりませんが、「どの設定ファイルで破損していますか?」という質問がポップアップ表示されたときに使用できるメタ回答だけは知っています。
まだインストールしていない場合は、midnight commander をインストールしてください。/etc で mc を起動します。
mc /etc
F9、c、f、または Alt-? または Meta-? (Alt が Meta でない場合) でファイル検索ダイアログを起動します。
させて開始:である。(シングルドット)をデフォルトとして、ファイル名:デフォルトは*とし、コンテンツ:なれマンパス。
コンテンツを検索するチェックし、最初のヒットいけない。
検索が完了するのを待つだけで、ダイアログに、MANPATH が記述されているすべてのファイル内の MANPATH の出現箇所がすべて表示されます。閲覧して、何があなたの生活を困難にしているのかを判断できます。
基本的には、/etc で rgrep を実行して MANPATH を検索し、その出力を読み取るのと同じですが、私見でははるかに便利です。