로컬 담당자에서 데비안 패키지를 설치하는 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
. 그러나 이것은 특별히 강력하지는 않습니다.