심볼릭 링크 디렉토리에서 "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.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를 업데이트할 때 TeX 업데이트를 약속하게 될 것입니다.

관련 정보