Bash

Bash 為 man 尋找錯誤的執行檔

  • February 27, 2022

我最近安裝了 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.tgzpathfunc.tgz獲取文件

引用自:https://unix.stackexchange.com/questions/692203