例子
(从 macOS 11.7 开始;也出现在 macOS 12.6.1 上;这些是我唯一可以测试的系统)
$ pushd "$(mktemp -d /tmp/makewhatis-XXXXXXX)"
$ mkdir man
$ ln -s man sman
$ mkdir man/man1
$ cp /usr/share/man/man1/true.1 man/man1/
$ /usr/libexec/makewhatis -v -o /dev/null man
man directory man
man/man1
reading man/man1/true.1
$ /usr/libexec/makewhatis -v -o /dev/null sman
man directory foo
makewhatis: foo: Not a directory
语境
man -k
当搜索在 stderr 上输出一些关于未找到目录的失败时,我注意到了这一点。特别是,makewhatis
对 非常不满意/Library/TeX/texbin/man
,它是 TeX Live for Mac 发行版(?)为手册页安装的符号链接。我最近才开始看到这一点,因为man
通过符号链接可以正常工作。也就是说,man -w latex
prints /Library/TeX/texbin/man/man1/latex.1
,但man -k latex 2>&1 | cat
打印(在我的系统上):
pod2latex(1) - convert pod documentation to latex format
makewhatis: /Library/TeX/texbin/man: Not a directory
coq-tex(1) - Process Coq phrases embedded in LaTeX files
Pod::LaTeX(3pm) - Convert Pod data to formatted Latex
pod2latex(1) - convert pod documentation to latex format
我不确定这是否是 Apple 特有的(如果是的话,让我们转向 AskDiffernt?)。
我想知道为什么会发生这种情况,但更重要的是我如何修复它而不用乱搞安装程序创建的符号链接。
答案1
Paltrey 回答了这个问题,但我通过运行以下命令在短期内(在 Ventura 上)解决了这个问题:
sudo /usr/libexec/makewhatis /usr/local/texlive/2022/texmf-dist/doc/man
我还将该路径添加到 /etc/manpaths.d/Tex,注释掉安装程序放置在那里的名义上的通用路径。不知道需要做什么才能重建数据库,也许这种情况发生在升级过程中?
如果您走这条路,您可能会在更新 TeX 时承诺需要更新它。