
다음과 같은 상황의 패키지를 찾고 있습니다.
- 삭제되었지만 제거되지 않음
- 설치되었지만 구성되지 않음
나는 다음과 같은 것을 시도했다
aptitude search '~id'
그리고
aptitude search "~iuA"
하지만 둘 다 작동하지 않았습니다.
어떤 아이디어가 있나요?
업데이트 - 명령 중 하나가 작동하지 않습니다 -
[$] dpkg-query -Wf '${db:Status-Abbrev} ${Package}\n' | grep ^i[^i]
zsh: no matches found: ^i[^i]
zsh에 결함이 있거나 다른 것이 있다면 어떤 아이디어가 있습니까?
답변1
시도할 때 '패키지 상태에서 다음 플래그를 찾는다' aptitude
는 의미는 아니라는 점에 유의하는 것이 중요합니다 . 는 의 약어이고 , 그 다음은~
~i
~installed
디문자 그대로 해석된다디, 즉 이름에 문자가 포함된 패키지디. 귀하의 질문을 만족시킬 수 있는 검색 패턴을 찾기 위해 aptitude
( 내 시스템의) 문서를 살펴봤지만 /usr/share/doc/aptitude/html/en/index.html
그것이 가능한지 확신할 수 없습니다. ~action
중간에 도착할 수도 있지만 상태를 얻는 것에 대해서도 잘 모르겠습니다.
사용의 대안은 와 함께 aptitude
사용하는 것입니다 .dpkg-query
grep
dpkg-query -Wf '${db:Status-Abbrev} ${Package}\n' | grep ^r
그러면 다음 위치에 있는 패키지가 검색됩니다.제거됨상태이지만 제거되지는 않았습니다.
dpkg-query -Wf '${db:Status-Abbrev} ${Package}\n' | grep ^i[^i]
그러면 다음으로 표시된 패키지가 검색됩니다.설치됨, 완전히 설치되지 않았습니다. 트리거에 보류 중인 패키지를 포함하지 않으려면 ^i[ncHUF]
대신 사용할 수 있습니다.
출력의 두 번째 열(패키지 이름)만 얻으려면 다음을 사용할 수 있습니다 sed
.
dpkg-query -Wf '${db:Status-Abbrev} ${Package}\n' | sed -n 's/^r.R\?\s*//p'
제거된 패키지를 찾으려면
dpkg-query -Wf '${db:Status-Abbrev} ${Package}\n' | sed -n 's/^i[^i]R\?\s*//p'
설치해야 하지만 완전히 설치되지 않은 패키지를 찾으려면
이를 좀 더 확장하자면 데비안 패키지의 '상태'는 두 부분으로 구성됩니다:
그만큼행동패키지로 수행되도록 의도되었습니다. 이는 다음과 같을 수 있습니다.설치하다패키지, ~에제거하다패키지, ~에잡고 있다패키지 또는숙청패키지.
그만큼패키지 상태, 시스템에 있는 패키지의 실제 상태를 설명합니다.
위의 dpkg-query
호출은 패키지의 작업과 상태를 각각 한 문자씩 나열하며 각 줄의 시작 부분에 패키지 이름이 표시됩니다.
제거되었지만 제거되지 않은 패키지를 찾으려면 'remove' 작업을 사용하여 패키지를 검색하면 됩니다 grep ^r
. 설치되었거나 설치될 예정이지만 아직 구성되지 않은 패키지를 찾으려면 다음과 같은 패키지를 검색합니다.행동~이다설치하다, 그러나 그 사람의 상태는 다음과 다릅니다.설치됨: grep ^i[^i]
.
답변2
삭제되었으나 삭제되지 않은 항목은 ~c
( ?config-files
)입니다.
설치되었지만 구성되지 않은 경우 apt에서는 추적되지 않고 dpkg에서만 추적됩니다. 패키지에는 실제 상태와 원하는 상태라는 두 가지 상태가 있습니다. Apt는 원하는 상태에만 관심이 있습니다. 설치되었지만 구성되지 않은 패키지의 원하는 상태가 설치되었습니다.
보다딜런 프레즈의 답변dpkg 쿼리의 경우.