데비안 저장소에서 모든 패키지를 제거하는 방법은 무엇입니까?

데비안 저장소에서 모든 패키지를 제거하는 방법은 무엇입니까?

이전에 일부 외부 소스를 추가했지만 /etc/apt/sources.list.d지금은 그 중 하나를 제거하고 싶습니다. 내가 너무 할:

  • 이 소스에서만 모든 패키지 제거
  • 모든 패키지를 원본 소스의 버전으로 복원
  • 또는 이 프로세스를 수동으로 수행할 수 있도록 이 소스의 모든 패키지를 나열하세요.

어떻게 해야 하나요?

답변1

제거하려는 저장소의 구성에 따라 apt list --installed제거하거나 다운그레이드해야 하는 패키지를 식별하는 데 충분한 정보가 있을 수 있습니다. 저장소가 고유한 "원본"을 정의하는 경우 다른 옵션을 사용하는 것입니다 aptitude search '~i ~Oorigin'( origin필요에 따라 대체).

(이것은 일반적인 답변입니다.질문을 수정하세요제거하려는 소스를 정확하게 지정하기 위해 특정 답변을 추가할 수 있습니다. )

답변2

또는 dpkg를 사용하세요.

dpkg -l | awk '/^.i/ {print $2}' | xargs apt-cache policy | awk '/^[a-z0-9.\-]+:/ {pkg=$1}; /\*\*\*/ {OFS="\t"; ver=$2; getline; print pkg,ver,$2,$3}'|grep -v /var/lib/dpkg/status| sed -e 's/://'|awk '{printf "%-40s %-36s %-36s %-16s \n",$1,$2,$3, $4}' | grep -i yourkeyword

예를 들어

dpkg -l | awk '/^.i/ {print $2}' | xargs apt-cache policy | awk '/^[a-z0-9.\-]+:/ {pkg=$1}; /\*\*\*/ {OFS="\t"; ver=$2; getline; print pkg,ver,$2,$3}'|grep -v /var/lib/dpkg/status| sed -e 's/://'|awk '{printf "%-40s %-36s %-36s %-16s \n",$1,$2,$3, $4}' | grep -i multimedia

반품:

audacious                                1:3.8.2-dmo1                         http://www.deb-multimedia.org        stretch/main     
audacious-plugins                        1:3.8.2-dmo1                         http://www.deb-multimedia.org        stretch/main     
audacious-plugins-data                   1:3.8.2-dmo1                         http://www.deb-multimedia.org        stretch/main    
snipp

이는 deb-multimedia.org의 패키지를 보여줍니다. 결과는 다음과 같습니다.dpkg-query -W -f='${Section}\t\t${Package}\n' | awk '/^.i/ {print $2}' | xargs apt-cache policy | awk '/^[a-z0-9.\-]+:/ {pkg=$1}; /\*\*\*/ {OFS="\t"; ver=$2; getline; print pkg,ver,$2,$3}'|grep -v /var/lib/dpkg/status| sed -e 's/://'|awk '{printf "%-40s %-36s %-36s %-16s \n",$1,$2,$3, $4}' | egrep -i multimedia

관련 정보