dpkg-query는 "rc" 대신 설치된 패키지만 표시합니다.

dpkg-query는 "rc" 대신 설치된 패키지만 표시합니다.

나는 다음을 사용하고 있습니다 :

dpkg-query -W -f='${package}\t${version}\t${architecture}\n'

설치된 패키지가 나열되지만 제거 대상으로 표시된 패키지, 즉 상태가 있는 패키지도 표시됩니다 rc.

설치된 패키지만 얻는 방법은 무엇입니까?

답변1

dpkg-query상태 필터링은 지원되지 않지만 패킷 상태를 출력하여 필터링할 수 있습니다.

dpkg-query -W -f='${Status}\t${package}\t${version}\t${architecture}\n' | grep "^install ok installed"

dpkg -l상태 자체를 기반으로 하므로 dpkg-query상태 자체를 필터링할 수 있는 방법이 없습니다.

aptitude더 강력한 검색 옵션을 사용할 수 있으며 이를 위해 사용할 수 있습니다.패턴과 일치하는 설치된 패키지 목록을 얻는 올바른 방법은 무엇입니까?더 알아보기. 다음 명령은 설치된 모든 패키지(및 설치된 패키지만)의 패키지 이름, 버전 및 아키텍처를 표시합니다.

aptitude search "~i" -F "%p%v#%E"

패키지 이름이 시스템의 기본 아키텍처와 일치하지 않으면 패키지 이름에 아키텍처가 포함됩니다.

zlib1g       1:1.2.11.dfsg-1  amd64
zlib1g:i386  1:1.2.11.dfsg-1  i386      

답변2

사용하는 명령은 패키지, 버전 번호 및 아키텍처만 지정하고 상태에 관계없이 모든 것을 인쇄합니다.

설치된 패키지만 표시하려면 다음을 수행하세요.

dpkg --list | grep ^ii

상태는 첫 번째 열에 표시되며 이는 ii설치가 예상됨을 의미합니다. 파이프라인은 grep ^ii이 상태의 패키지만 표시합니다.

amd64 아키텍처용 패키지만 설치하려는 경우:

dpkg --list | grep "^ii.*amd64"

ii그러면 상태 sum 이 포함된 패키지만 인쇄됩니다 amd64.

동일한 작업을 수행하려면 첫 번째와 네 번째 열의 행만 awk인쇄합니다 .iiamd64

dpkg --list | awk '$1=="ii" && $4=="amd64"'

관련 정보