シンボリックリンクディレクトリで「makewhatis」がブロックされる理由とそれを修正/防止する方法は?

シンボリックリンクディレクトリで「makewhatis」がブロックされる理由とそれを修正/防止する方法は?

はい

(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のいくつかの出力が原因で検索が失敗したときにこれが見つかりました。特に、私はMac用TeX Liveディストリビューション(?)がマニュアルページ用にインストールするシンボリックリンクmakewhatisにはあまり満足していません。/Library/TeX/texbin/man私は最近manシンボリックリンクを通過するのがうまくいくのを見始めました。つまり、man -w latex印刷/Library/TeX/texbin/man/man1/latex.1man -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を更新するときにTeXの更新が約束されます。

おすすめ記事