在以前安装的 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.config
20.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.config
man
如何查找包含与 中特定条目相关的手册文件的目录PATH
。man
然后使用这些路径关系查找man
文件,这可能就是我之前安装的区别。
例如,考虑以下条目:
MANPATH_MAP /usr/local/bin /usr/local/share/man
这导致在查找手册页时,将检查找到的可执行文件与给定条目man
之间的相对路径。PATH
在我的新安装中,我还没有创建~/.local/bin
,这是我通常在我的主目录中保存 shell 脚本和其他本地可执行文件的地方。创建此目录并生成新的 shell 后,我能够运行man cargo
并让它在~/.local/share/man
.
这有点不直观,如果不深入研究,我可能永远不会弄清楚这一点man
,但它确实有效!