패키지 단위로 정확히“프로세싱 트리거”가 무엇인지 확인하는 방법이 있습니까?


15

내가 이해했듯이 일반적인 " <packagename>에 대한 처리 트리거 "는 시작 메뉴에 항목 추가 또는 구성 파일 업데이트와 같은 일부 패키지 및 시스템 특정 작업을 수행합니다. 이 단계에서 정확히 수행되거나 변경된 내용을 확인할 수있는 실제 방법이 있습니까? 단계의 정확한 동작을 어디에서 찾을 수 있습니까?

답변:


16

있지만 패키지가 트리거되도록 일부 bash 스크립트를 파야합니다.

  • dpkg출력이 다음과 같다고 가정하십시오 .

    zim 0.52-1 교체 준비 (... / archives / zim_0.52-1_all.deb 사용) ...
    교체 용 ZIM 포장 풀기 ...
    공유 MIME 정보에 대한 트리거 처리 중 ...
    메뉴 트리거 처리 중 ...
  • 내부적으로 명령 줄 옵션과 0 개 이상의 트리거 옵션을 사용하여 이러한 각 패키지에 대해 스크립트를 dpkg호출합니다 .postinsttriggered

  • 그래서, 당신은 단순히 /var/lib/dpkg/info/PACKAGE.postinstbash 스크립트 $1입니다.triggered

예 : man-db트리거

가장 일반적인 "처리 트리거"중 하나는 man-db설치중인 패키지에 매뉴얼 페이지 가있을 때마다 입니다.

를 열면 /var/lib/dpkg/info/man-db.postinst이 섹션이 있습니다.

[ "$ 1"= 트리거 된 경우]; 그때
    # dpkg가 이미 말했듯이 여기에 상태 메시지를 인쇄하지 않습니다
    # "man-db에 대한 처리 트리거 ...".
    run_mandb -pq
    출구 0
fi

따라서 Processing triggers for man-db ...단순히 옵션으로 run_mandb함수 ( postinst스크립트 에도 있음 )가 실행되는 것을 볼 수 -pq있습니다.

유용한 자료 :

  1. dpkg 트리거를보다 유용하고 덜 고통스럽게 만들려고 함
  2. dpkg 트리거, 손실 된 사용 방법 문서

왜 이렇게 천천히?!
Antonio Petricca
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.