Bash 為 man 尋找錯誤的執行檔
我最近安裝了 TeX-Live 並試圖將它的 man 添加到 manpath 中。它不起作用,找不到條目,我並沒有太在意。但是,(我想)在系統重新啟動後,該
man
命令完全不起作用。:~$ man man bash: /mnt/HDD/texlive/2021/bin/x86_64-linux/man: cannot execute binary file: Exec format error
我不知道它為什麼要尋找 TeX Live 的版本。
:~$ whereis man man: /usr/bin/man /usr/local/man /usr/share/man /mnt/HDD/texlive/2021/bin/x86_64-linux/man /usr/share/man/man7/man.7.gz /usr/share/man/man1/man.1.gz
我已經修改了這兩個
~/.bashrc
並/etc/manpath.config
基於這個接受的答案,我都恢復了。我嘗試source
了新的 bashrc 文件,註銷並登錄,或重新啟動系統,但我似乎無法man
再次工作。這裡有什麼問題,我該如何恢復
man
,我可以忽略什麼?需要明確的是,我並不關心成功將 TeX Live 添加到手冊頁,我只想讓我的man
命令再次起作用。編輯:附加資訊
這是路徑變數:(我打破了輸出 int 多行並刪除了冒號,以便在此處更容易閱讀。)
:~$ echo $PATH /mnt/HDD/texlive/2021/bin/x86_64-linux /home/<username>/.local/bin /usr/local/sbin /usr/local/bin /usr/sbin:/usr/bin /sbin /bin /usr/games /usr/local/games /snap/bin
最上面的應該是我需要建構乳膠項目的那個,所以我想它不應該引起問題。
此外,
echo $MANPATH
不列印任何東西。說到我所做的,除了修改這兩個文件之外,我什麼也沒做。
我添加了以下幾行
$HOME/.bashrc
PATH=/mnt/HDD/texlive/2021/bin/x86_64-linux:$PATH; export PATH MANPATH=/mnt/HDD/texlive/2021/texmf-dist/doc/man:$MANPATH; export MANPATH INFOPATH=/mnt/HDD/texlive/2021/texmf-dist/doc/info:$INFOPATH; export INFOPATH
# set up PATH to MANPATH mapping
然後我在該部分的末尾添加了以下行/etc/manpath.config
MANPATH_MAP /mnt/HDD/texlive/2021/bin/x86_64-linux /mnt/HDD/texlive/2021/texmf-dist/doc/man
然後我執行
source ~/.bashrc
,並嘗試訪問一些隨機 TeX 內容的手冊頁,並收到一條消息,指出未找到相關條目。因此,即使它不能與 TeX 一起使用,該man
命令仍然可以正常工作。我相信我把它留在這裡,並註意到我幾天后描述的問題。正如我所說,我取消了上面提到的所有內容。
因為已經過去了一段時間,而且我不一定知道我在做什麼,特別是處理
manpath.config
文件,我可能做了其他事情,但我不記得做過其他事情。如果您有可能導致此類問題的潛在操作的建議,或者無論如何都可以解決此問題的方法(當然,這不涉及重新安裝 linux 或其他任何東西),我將不勝感激。
"
MANPATH
" 控制man
命令查找man
頁面的位置,如果你想要一些不尋常的東西。保持未設置以使用預設位置。看看man man
你什麼時候解決這個問題。"
$PATH
" 是一個以冒號分隔的目錄列表,您的 shell 在其中查找可執行程序(如果您鍵入的不是別名、函式或內置程序)。通過將第
/mnt/HDD/texlive/2021/bin/x86_64-linux
一個放在您的 中PATH
,您可以texlive
提供(非工作)man
命令。看看man bash
什麼時候修復。放在
texlive
末尾PATH
。將行更改.bashrc
為:PATH=$PATH:/mnt/HDD/texlive/2021/bin/x86_64-linux
並註銷/登錄以重新開始。
有關使用“冒號分隔”列表作為
bash
數據類型的更多詳細資訊,我使用 Stephen Collyer 的 bash_path_funcs,早在 2000 年的 Linux Journal 中就有描述:https://www.linuxjournal.com/article/3645 https://www.linuxjournal.com/article/3768 https://www.linuxjournal.com/article/3935
addpath
僅當路徑最初不存在時,該函式才會將條目添加到路徑中。delpath -n
從路徑中刪除所有不存在的目錄。您可以從https://web.archive.org/web/20061210054813/http://www.netspinner.co.uk:80/Downloads/pathfunc.tgz
pathfunc.tgz
獲取文件