Scientic Linux 5.5 上未設定 MANPATH

Scientic Linux 5.5 上未設定 MANPATH

在 Scientific Linux 5.5 安裝中,未設定 $MANPATH。我已經安裝了環境模組,這可能會導致 $MANPATH 被覆蓋,但我不確定這一點。所以我的主要問題是: /etc/man.config 什麼時候被解釋為形成 $MANPATH?它是 bash-shell 本身(硬編碼)還是登入時取得的文件,例如 /etc/profile?我在 /etc/man.config 的任何檔案中都找不到 /etc 下的任何依賴項。

我認為環境模組與 $MANPATH 混淆的原因是登入系統後面唯一的條目是:

# 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

如果我刪除此文件,至少「/usr/man」會出現在 $MANPATH 中,但這只是 /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!這是實際的解決方案解決我的問題,因為一個環境模組在 $MANPATH 變數前面添加了一個手動路徑,沒有前導冒號,並且由於預設手冊頁不再可用。

答案2

好吧,雖然我寫在您的答案字段,我不知道答案,我只知道一個元答案,每當出現這種“在哪個配置文件中被損壞?”時都可以使用它。彈出。

如果您還沒有安裝午夜指揮官,請安裝它。在 /etc 中啟動 mc:

mc /etc

透過 F9、c、f 或 Alt- 啟動「尋找檔案」對話方塊?或元-? (如果 Alt 不是您的 Meta)

開始於:成為一個(單點)作為預設值,讓檔案名稱:預設為 * ,並讓內容:曼路徑

搜尋內容應檢查並第一擊不應該。

只需讓搜尋完成,在對話方塊中您將看到所有寫入 MANPATH 的文件中出現的所有內容。您可以瀏覽並判斷是什麼讓您的生活變得更加困難。

基本上,這與您在 /etc 上運行 rgrep 查找 MANPATH 並讀取其輸出相同,只是更方便(恕我直言)。

相關內容