Synaptic/apt/dpkg를 사용하여 다운로드된(설치되지 않은) 패키지를 감지하시겠습니까?

Synaptic/apt/dpkg를 사용하여 다운로드된(설치되지 않은) 패키지를 감지하시겠습니까?

감지할 수 있는 방법이 있나요?다운로드(캐시에서)그리고설치되지 않음Synaptic, apt 또는 dpkg의 패키지를 사용하시나요? 이를 위해 특정 필터를 만들어야 합니까? 그렇다면 어떻게 해야 합니까? 이에 대해 어디서 배울 수 있나요?

apt 또는 Synaptic 캐싱이 켜져 있다는 것을 알고 /var/cache/apt/archives있으며 apt를 사용하여 무언가를 설치하면 캐시에 아무것도 들어가지 않는 것 같습니다. 반면에 Synaptic에서는 나중에 다운로드하고 설치하도록 선택할 수 있습니다.

내가 원하는 것은 아직 설치되지 않은 캐시에 무엇이 있는지 아는 것입니다.

답변1

빠르고 더러운:

PATH=/sbin:$PATH dpkg --no-act -iGE /var/cache/apt/archives/*.deb 2>&1 |grep -v skipping

이를 위해서는 dpkg가 이미 동일한 버전이나 최신 버전이 있는 패키지( )를 건너뛰고 캐시에서 패키지를 --no-act설치( ) 하는 척해야 합니다 . 루트일 필요는 없지만 명령 검색 경로에 일부 유틸리티가 있어야 합니다. 왜냐하면 모드에서 사용하지 않더라도 경로에 일부 유틸리티가 있어야 한다고 주장하기 때문입니다.-i-GE/sbindpkg -i/sbin--no-act

답변2

Synaptic으로는 이 작업을 수행할 수 없을 것 같지만 다음은 캐시에서 모든 패키지의 상태를 쿼리하고 설치된 패키지와 일치하지 않는 파일을 나열하는 명령입니다.

for deb in /var/cache/apt/archives/*.deb; do
    package=$(dpkg-deb -f $deb Package)
    if [ "$(dpkg-query -f '${Status}' -W $package 2>/dev/null)" != "install ok installed" ]; then
        echo $deb
    fi
done

이는 *.deb캐시에 있는 각 파일을 살펴보고, 포함된 패키지를 결정하고, 패키지 상태를 확인합니다. 완전히 설치 및 구성되지 않은 패키지에 해당하는 모든 파일이 나열됩니다.

질의 방법비슷한 효과가 있지만 작동합니다.모두apt캐시에 많은 수의 패키지가 포함되어 있으면 최종 속도가 더 빨라집니다. 업그레이드 후보를 나열할 수 있다는 장점도 있지만 특정 dpkg후크를 실행하는 단점도 있습니다(옵션이 있음에도 불구하고 --no-act).

apt(v. 또는 Synaptic) 실행 후 apg-get캐시에 패키지가 표시되지 않는 이유는 패키지 apt가 자동으로 정리되기 때문입니다.

관련 정보