적성이 뭔가를 했는지 어떻게 확인하나요?

적성이 뭔가를 했는지 어떻게 확인하나요?

로컬 담당자에서 데비안 패키지를 설치하는 CI 빌드 프로세스가 있습니다.

Makefile아래와 같이 자체 저장소에서 패키지를 설치하기 위해 적성을 호출하는 방법이 있습니다.

sudo aptitude -y install foobar >> aptitude.log 2>&1

이제 aptitude에 해결할 수 없는 충돌이 있거나 저장소가 "foobar" 패키지의 새 버전을 제공하지 않는 경우가 발생할 수 있습니다. 두 경우 모두 적성은 아무것도 설치하지 않습니다. 하지만

echo $?

aptitude가 호출된 후에는 Makefile항상 를 반환합니다 0. 적성이 실제로 아무것도 설치했는지 확인하려면 어떤 방법을 권장합니까? 종료 코드가 항상 이면 내가 생각할 수 있는 유일한 방법은 aptitude 출력의 마지막 줄을 찾는 것입니다 0.

답변1

을 사용해 보십시오 dpkg-query. 설치된 패키지에 대한 정보가 인쇄됩니다.

예:

dpkg-query -W -f='${Status} ${Version}\n' foobar

결과는 다음과 같습니다

No packages found matching foobar.

dpkg-query --help자세한 내용을 보려면 실행하세요 .

답변2

/var/lib/dpkg/info업그레이드가 아닌 설치가 원활하게 진행되었는지 확인하고 싶기 때문에 실행 전후에 파일 개수를 세어보면 됩니다 aptitude. 그러나 이것은 특별히 강력하지는 않습니다.

관련 정보