다음과 같은 상황의 패키지를 찾고 있습니다.
- 삭제되었으나 지워지지 않음
- 설치되었지만 구성되지 않음
나는 다음과 같은 것을 시도했습니다
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
yes의 약어는 ~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 쿼리에 사용됩니다.