적성 - 특정 패키지에 대한 종속성을 제외하고 X11 범주의 모든 패키지를 제거합니다.

적성 - 특정 패키지에 대한 종속성을 제외하고 X11 범주의 모든 패키지를 제거합니다.

내 시스템에서 X11 범주에 있는 대부분의 패키지를 제거하고 싶습니다. 그러나 이러한 패키지 중 일부는 "beaglebone" 패키지에 의존합니다. "beaglebone" 패키지를 제외하고 X11 카테고리의 모든 항목을 제거하도록 적성에게 어떻게 요청할 수 있나요?

아래에서는 손상을 방지하기 위해 제거해야 하는 패키지 중 하나로 "beaglebone"을 권장하는 것을 볼 수 있습니다.

    적성은 삭제하는 것이 좋습니다. 비글본도 포함.

삭제 후에도 패키지와 해당 종속성이 유지되도록 하려면 어떻게 해야 합니까?

답변1

짧은 대답은 다음과 같습니다.

aptitude remove '~sX11 ! ~Rbeaglebone'

그러나 이 경우에는 (많은X11에 의존하는 것! ), 대화형 파서를 사용하는 것이 좋습니다. 이렇게 하려면 --schedule-only위에 옵션을 추가하고 aptitude인수 없이 다시 실행하면 됩니다. 명령을 한두 개 추가해야 할 수도 있지만 -o Aptitude::Auto-Fix-Broken=false(아직 설정에 없는 경우) 필요하지 않을 것 같습니다. g자동 구문 분석은 인터페이스를 누를 때만 발생한다는 것을 알 수 있습니다.

ncurses 인터페이스를 실행한 후 e첫 번째 해결 방법 확인을 누르고 제거된 항목을 확인합니다. 원하지 않는 항목이 표시되면 화살표 키를 사용하여 해당 항목을 선택하고 를 눌러 r작업을 거부하세요. 다음 솔루션 로드를 누르면 .이제 거부한 솔루션이 포함되지 않은 솔루션이 제공됩니다. 필요에 따라 반복하고 를 눌러 !해결책을 수락하고 정상적으로 계속하십시오.

답변2

다음 방법 중 하나를 사용하여 "beaglebone" 패키지를 "제외"하면 해당 종속성을 그대로 유지할 수 있다고 생각합니다.

$ sudo apt-mark hold <package>

또는

$ echo <package> hold | sudo dpkg --set-selections

apt-mark첫 번째는 해당 기능을 활용합니다 hold.

   hold
        hold is used to mark a package as held back, which will prevent the 
        package from being automatically installed, upgraded or removed. The 
        command is only a wrapper around dpkg --set-selections and the state 
        is therefore maintained by dpkg(1) and not affected by the --file 
        option.

두 번째는 dpkg패키지를 "예약됨"으로 표시하는 데 사용됩니다.

   --set-selections
        Set package selections using file read from stdin. This file should 
        be in the format 'package state', where state is one of install, 
        hold,  deinstall  or purge. Blank lines and comment lines beginning 
        with '#' are also permitted.

관련 정보