man 没有在 ~/.local/share/man/ 中搜索手册页

man 没有在 ~/.local/share/man/ 中搜索手册页

在以前安装的 Ubuntu 20.04 中,除了正常路径之外,man还会搜索主文件夹位置,例如.例如,我经常通过以下方式安装 Rust 手册页:XDG_/home/naftuli/.local/share/man/man?/*

rsync -av ~/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/share/man/man1/ \
    ~/.local/share/man/man1/

我现在使用的是 Ubuntu 22.04(基本操作系统 7.0),我做了同样的事情,但man似乎找不到它们:

$ man cargo
No manual entry for cargo

我已经上传了/etc/manpath.config20.04 和 22.04 的到这个要点,并且差异似乎并不显着:

diff --git a/manpath.config-20.04 b/etc/manpath.config
index a3e2255..e1747a2 100644
--- a/manpath.config-20.04
+++ b/etc/manpath.config
@@ -109,7 +109,7 @@ MANDB_MAP   /snap/man               /var/cache/man/snap
 # particular order. Sections with extensions should usually be adjacent to
 # their main section (e.g. "1 1mh 8 ...").
 #
-SECTION                1 n l 8 3 2 3posix 3pm 3perl 3am 5 4 9 6 7
+SECTION                1 n l 8 3 0 2 3posix 3pm 3perl 3am 5 4 9 6 7
 #
 #---------------------------------------------------------
 # Range of terminal widths permitted when displaying cat pages. If the
@@ -129,4 +129,4 @@ SECTION             1 n l 8 3 2 3posix 3pm 3perl 3am 5 4 9 6 7
 #---------------------------------------------------------
 # Flags.
 # NOCACHE keeps man from creating cat pages.
-#NOCACHE
\ No newline at end of file
+#NOCACHE

我可能缺少其他配置吗?我不需要在 20.04 上做任何特殊的事情就可以让它man~/.local/share/man.

答案1

我不太确定我之前安装的配置是什么,因为我目前没有硬件,但我能够找到一种修复路径的方法。

使用MANPATH环境变量

按照manpath(1)MANPATH环境变量允许“临时”(即只要设置了环境变量)路径修改man。变量内容遵循 的模式PATH,以冒号分隔,但也允许前置,追加, 和插入man层次结构中的系统路径。

  • 前置进入man路径,有你的MANPATH变量结尾带冒号:export MANPATH="$HOME/.local/share/man:
  • 附加进入man路径,有你的MANPATH变量开始带冒号:export MANPATH=":$HOME/.local/share/man
  • 插入man任意点的系统路径,使用两个冒号: export MANPATH="/snap/man::$HOME/.local/share/man

我个人更喜欢在查找系统手册页之前先查看我的主目录,因此我在我的文件man中进行如下设置:~/.bashrc

# note the colon at the end
export MANPATH="$HOME/.local/share/man:"

用来PATH指明道路

根据这篇博文,告诉MANPATH_MAP中的条目/etc/manpath.configman 如何查找包含与 中特定条目相关的手册文件的目录PATHman然后使用这些路径关系查找man文件,这可能就是我之前安装的区别。

例如,考虑以下条目:

MANPATH_MAP /usr/local/bin /usr/local/share/man

这导致在查找手册页时,将检查找到的可执行文件与给定条目man之间的相对路径。PATH

在我的新安装中,我还没有创建~/.local/bin,这是我通常在我的主目录中保存 shell 脚本和其他本地可执行文件的地方。创建此目录并生成新的 shell 后,我能够运行man cargo并让它在~/.local/share/man.

这有点不直观,如果不深入研究,我可能永远不会弄清楚这一点man,但它确实有效!

相关内容