.deb 패키지 설치시 수행 할 작업을 어떻게 표시합니까?


33

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

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


왜 투표가 거부 되었습니까? 합리적인 질문처럼 보입니다 (이런 일을하는 것이 일반적으로 필요하지는 않지만).
sleske

1
나를 때린다. 특히 거친 의견이나 답변은 없으며 무작위 다운 보트입니다. 마치 "정상적으로하지 말아야 할 것"은 "어떤 상황에서도 절대로 교육을받지 않아야하는 것"과 같습니다. :(
Sam Brightman

답변:


20

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

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

dpkg --dry-run -i package.deb

이 옵션들을 놓쳤을 것입니다. 감사합니다. -나는 비록 많이 보이지 않는 것 같습니다-첫 번째 줄 (인터로 뱅)처럼 보입니다.
Sam Brightman

2
참고 : 패키지 파일을 로컬로 사용할 수 있어야합니다. 먼저 '적성 다운로드 <packagename>'을 통해 다운로드하십시오.
Martijn Heemels

3
-e 옵션은 파일 및 실행될 다양한 스크립트 파일이 있는 DEBIAN디렉토리를 작성 control합니다. postinst패키지가 성공적으로 설치되면 실행되므로 일반적으로 매우 흥미 롭습니다.
dwurf

8

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

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

ar -x package.deb

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


일부 상세 옵션이있는 aptitude -s가 실제로 전체 업그레이드에 대해 실행되는 스크립트를 표시하면 더 좋습니다. 그것은 본질적으로 내가 요구 한 것이지만 Mikael의 대답은 약간 더 간단하다고 생각합니다.
Sam Brightman

2

도 있습니다 --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.

그래도 여전히 설치를 수행합니까?
Sam Brightman

예, 100 % 맞습니다. 다른 (개발) 인스턴스에서 수행해야합니다.
estibordo

1

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

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

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


개별 스크립트의 일부가 아닌 스크립트의 하위 세트를 의미했습니다. 명확하지 않으면 죄송합니다. 나는 마술을 원하지 않으며 스크립트와 인수를 알고 있으면 수동으로 검사하거나 불편한 부분을 수정할 수 있습니다.
Sam Brightman
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.