메타패키지와 해당 패키지를 모두 제거할 수 있는 방법이 있습니까? 메타패키지의 하위 집합은 메타패키지에 전혀 의존하지 않는 패키지입니다. 이것이 메타패키지를 삭제해도 해당 패키지의 메타패키지 하위 집합이 삭제되지 않는 이유입니다.
예를 들어, 메타패키지는 apache2
install 시 설치될 일부 패키지를 포함합니다 apache2
. apt-get install apache2
쉘에서 이 명령을 사용 하고 synaptic
일부 패키지를 설치했습니다. 이제 명령을 apache2
통해 메타 패키지를 삭제하거나 패키지 apt-get autoremove apache2
만 삭제 하면 메타 패키지의 하위 집합인 다른 패키지는 제거되지 않습니다.synaptic
apache2
제 생각에는 가장 좋은 방법은 메타 패키지의 모든 패키지를 제거하는 것입니다. 문제를 해결하는 방법?
답변1
내가 아는 한은 apache2
아니다위안바오. 다양한 패키지에는 종속성이 있으므로 설치하면 apache2
다른 패키지도 설치되지만 메타 패키지가 되지는 않습니다.
어쨌든, 정확히 무엇을 달성하고 싶은지 잘 모르겠으므로 몇 가지 옵션을 제공하겠습니다.
apache2
더 이상 필요하지 않은 패키지(예: 자신이 설치했고 제거한 후 더 이상 필요하지 않은 패키지)를 제거하려면 다음을 사용하세요autoremove
.apt-get autoremove
실제 메타패키지로 설치된 모든 패키지를 제거하려면 다음과 같이 하면 됩니다(
wicd
예: 메타패키지 사용).나. 로그를 검색하여 메타패키지로 설치된 패키지를 찾으세요
apt
.$ grep -A 3 wicd /var/log/apt/history.log Commandline: apt-get install wicd Install: rfkill:amd64 (0.4-1, automatic), wicd:amd64 (1.7.2.4-4), python-wicd:amd64 (1.7.2.4-4, automatic), wicd-daemon:amd64 (1.7.2.4-4, automatic), wicd-gtk:amd64 (1.7.2.4-4, automatic) End-Date: 2013-05-07 18:10:24
2. 이를 구문 분석하여 패키지 이름만 얻을 수 있습니다.
$ grep -A 3 wicd /var/log/apt/history.log | perl -ne 's/Install:*// && do { @a=(/\s+([^\s]+?):/g); print "@a\n" }' rfkill wicd python-wicd wicd-daemon wicd-gtk
iii.이제 제거할 수 있습니다(명령을
apt
실행하는 대신 명령을 인쇄하여 먼저 제거할 항목을 확인합니다).$ grep -A 3 wicd /var/log/apt/history.log | perl -ne 's/Install:*// && do { @a=(/\s+([^\s]+?):/g); print "apt-get remove @a\n" }' apt-get remove rfkill wicd python-wicd wicd-daemon wicd-gtk