man-db에 대한 처리 트리거

man-db에 대한 처리 트리거

sudo aptitude 업그레이드를 실행하면 거의 모든 패키지 업그레이드 후 "Processing Triggers for man-db ..."라는 메시지와 함께 콘솔이 오랫동안 정지됩니다. 무엇이 문제일 수 있으며 어떻게 해결할 수 있나요?

Ubuntu 버전: 12.04(서버 및 Xubuntu 모두)

미리 감사드립니다.


업데이트: 추가 테스트 결과 이 ​​문제는 autofs 패키지와 관련된 것 같습니다. autofs를 제거하면 문제가 해결되었습니다. 이유를 모르겠어요. 그런 다음 이 문제(여기에 게시된 다른 두 가지 문제도 포함)를 방지하려면 파일 시스템에 autofs 대신 소프트 링크를 사용해야 합니다.

답변1

Processing triggers for man-db파일이 존재하는 경우에만 단계가 실행 됩니다 /var/lib/man-db/auto-update. 이는 이 동작을 제어할 목적으로만 사용된 빈 파일이므로 시간이 많이 걸리고 불필요한 프로세스를 비활성화하기 위해 안전하게 제거할 수 있습니다.

저는 개인적으로 모든 시스템에서 이 트리거를 비활성화합니다. man-db 캐시는 매뉴얼 페이지 시스템의 속도와 기능을 향상시키는 역할을 하지만 트리거를 비활성화한 후에도 눈에 띄는 성능 저하나 기능적 문제는 경험하지 못했습니다.

답변2

주의:아래 명령을 실행하면 명령을 사용하여 매뉴얼 페이지를 읽는 기능과 및 같은 관련 유틸리티와 같은 Ubuntu의 필수 부분이 제거 man됩니다 . 또한 메타패키지를 제거하면 추가 패키지 수가 수동으로 설치된 것으로 표시됩니다. 극도의 주의를 기울여 이 조언을 따르십시오.aproposwhatisubuntu-standard

누군가에게 도움이 될 수 있습니다. 저는 CI에서 정기적으로 이 문제를 겪었습니다.

다음을 실행하면 됩니다.

sudo apt-get remove --purge man-db

이 명령은 man-db 패키지를 완전히 제거하는데, 우리의 경우 CI에서는 전혀 쓸모가 없었습니다.

답변3

mandb 인덱스가 손상되었을 수 있습니다.

인덱스를 확인하고 다시 생성하세요.

sudo mandb -t
rm -rf /var/cache/man
sudo mandb -c

답변4

man-db 업데이트 트리거는 경로의 파일 시스템에 캐시된 debconf의 숨겨진 플래그에 의해 제어됩니다 /var/lib/man-db/auto-update. 캐시된 플래그 파일은 여기 man-db postinst 스크립트의 debconf 데이터베이스에서 동기화됩니다.https://sources.debian.org/src/man-db/2.11.2-2/debian/postinst/#L70-L79.

man-db의 자동 업데이트 플래그를 전환하는 올바른 방법 은 debconf 데이터베이스에서 값을 변경하고 man-db/auto-update값 을 디스크에 동기화하는 man-db postinst 스크립트를 다시 실행하는 것입니다. false루트로 다음 명령을 실행하십시오.

echo "set man-db/auto-update false" | debconf-communicate; dpkg-reconfigure man-db

이 플래그는 원래 Debian/Ubuntu 빌드 데몬에서 man-db 데이터베이스를 다시 빌드하는 것을 방지하기 위해 도입되었습니다. 데비안 버그 보기554914그리고579075자세한 내용은.

관련 정보