적성 - 특정 패키지의 종속성을 제외하고 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.

관련 정보