.deb 패키지 설치시 수행 할 작업을 어떻게 표시합니까? apt / dpkg). 내가 얻을 수있는

예를 들어 웹 서버가 다시 시작되는지 여부를 알 수 있도록 업그레이드로 인해 패키지와 관련된 스크립트 / 트리거를 볼 수 있기를 원합니다. 나에게 그것을 보여주는 적성 옵션을 찾을 수 없습니다 (또는 apt / dpkg). 내가 얻을 수있는 가장 좋은 것은 내용 (파일)입니다. 내가 놓친 시뮬레이션 / 세부 / 컨텐츠 스위치의 조합이 있습니까?

또한 패키지가 서비스 재시작과 같은 상황에서 지금 일어나고 싶지 않은 결과를 초래하는 경우 일부 또는 모든 스크립트를 실행하지 않고 패키지를 설치하는 방법이 있습니까?



답변

로 제어 파일 및 기타 정보를 인쇄 dpkg -I package.deb하거나 dpkg -e package.deb제어 정보 파일 만 추출 하는 데 사용할 수 있습니다.

또한, 드라이 런을 수행하여 dpkg의 기능을 확인할 수 있습니다 --dry-run.

dpkg --dry-run -i package.deb


답변

아니요, 적성을 사용 하여이 작업을 수행 할 수있는 방법을 모르겠습니다.

스크립트를 직접 볼 수 있습니다. 업그레이드 중에 실행되는 스크립트는 패키지에 포함되어 있습니다. ar을 사용하여 deb의 압축을 풉니 다.

ar -x package.deb

그런 다음 control.tar.gz스크립트가 포함되어 있습니다.


답변

도 있습니다 --debug에 대한 옵션 dpkg과 같이,sudo dpkg --debug=72200 -i package.deb

상세 출력에 사용 가능한 몇 가지 옵션이 있으며 결합 할 수 있습니다.

다음을 실행하여 사용 가능한 모든 옵션을 볼 수 있습니다 dpkg --debug=help..

pi@kaldi:~ $ dpkg --debug=help
dpkg debugging option, --debug=<octal> or -D<octal>:

 Number  Ref. in source   Description
      1  general          Generally helpful progress information
      2  scripts          Invocation and status of maintainer scripts
     10  eachfile         Output for each file processed
    100  eachfiledetail   Lots of output for each file processed
     20  conff            Output for each configuration file
    200  conffdetail      Lots of output for each configuration file
     40  depcon           Dependencies and conflicts
    400  depcondetail     Lots of dependencies/conflicts output
  10000  triggers         Trigger activation and processing
  20000  triggersdetail   Lots of output regarding triggers
  40000  triggersstupid   Silly amounts of output regarding triggers
   1000  veryverbose      Lots of drivel about eg the dpkg/info directory
   2000  stupidlyverbose  Insane amounts of drivel

Debugging options can be mixed using bitwise-or.
Note that the meanings and values are subject to change.


답변

아니요, 관리자 스크립트의 일부를 실행할 수 없으며 그렇게 할 수있는 고리가 없습니다.

스크립트를 직접 검토하여 스크립트가 수행하는 작업 만 볼 수 있습니다. 다시 “드라 이런 (dry run)”은 정확히 무엇을 할 것인지 말하지 않을뿐 아니라 “이 인수로 postinst를 실행할 것”입니다.

이것이 우리가 준비 및 테스트 환경을 갖는 이유입니다.


답변