Bash 为 man 寻找错误的可执行文件

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 或任何其他操作),我将不胜感激。

答案1

如果您想要一些不寻常的东西, “ 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/376​​8 https://www.linuxjournal.com/article/3935

addpath仅当路径中最初不存在该条目时,该函数才会将其添加到路径中。delpath -n从路径中删除所有不存在的目录。

您可以pathfunc.tgz从以下位置获取该文件 https://web.archive.org/web/20061210054813/http://www.netspinner.co.uk:80/Downloads/pathfunc.tgz

答案2

删除此行以恢复您的可执行文件:

PATH=/mnt/HDD/texlive/2021/bin/x86_64-linux:$PATH; export PATH

删除另外两行以分别恢复man和的文档搜索路径info

相关内容