나는 다음을 사용하고 있습니다 :
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
인쇄합니다 .ii
amd64
dpkg --list | awk '$1=="ii" && $4=="amd64"'