데비안에서 메타패키지를 완전히 제거하는 방법

데비안에서 메타패키지를 완전히 제거하는 방법

메타패키지와 해당 패키지를 모두 제거할 수 있는 방법이 있습니까? 메타패키지의 하위 집합은 메타패키지에 전혀 의존하지 않는 패키지입니다. 이것이 메타패키지를 삭제해도 해당 패키지의 메타패키지 하위 집합이 삭제되지 않는 이유입니다.

예를 들어, 메타패키지는 apache2install 시 설치될 일부 패키지를 포함합니다 apache2. apt-get install apache2쉘에서 이 명령을 사용 하고 synaptic일부 패키지를 설치했습니다. 이제 명령을 apache2통해 메타 패키지를 삭제하거나 패키지 apt-get autoremove apache2만 삭제 하면 메타 패키지의 하위 집합인 다른 패키지는 제거되지 않습니다.synapticapache2

제 생각에는 가장 좋은 방법은 메타 패키지의 모든 패키지를 제거하는 것입니다. 문제를 해결하는 방법?

답변1

내가 아는 한은 apache2아니다위안바오. 다양한 패키지에는 종속성이 있으므로 설치하면 apache2다른 패키지도 설치되지만 메타 패키지가 되지는 않습니다.

어쨌든, 정확히 무엇을 달성하고 싶은지 잘 모르겠으므로 몇 가지 옵션을 제공하겠습니다.

  1. apache2더 이상 필요하지 않은 패키지(예: 자신이 설치했고 제거한 후 더 이상 필요하지 않은 패키지)를 제거하려면 다음을 사용하세요 autoremove.

    apt-get autoremove
    
  2. 실제 메타패키지로 설치된 모든 패키지를 제거하려면 다음과 같이 하면 됩니다( 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
    

관련 정보