Aptitude — удалить все пакеты в категории X11, за исключением зависимостей определенного пакета

Aptitude — удалить все пакеты в категории X11, за исключением зависимостей определенного пакета

Я хотел бы удалить большинство пакетов в категории X11 из моей системы. Однако некоторые из этих пакетов зависят от пакета 'beaglebone'. Как я могу попросить aptitude удалить все в категории X11, за исключением пакетов, зависящих от 'beaglebone'?

Ниже вы можете увидеть, что он рекомендует «beaglebone» как один из пакетов, который следует удалить, поскольку существует риск его поломки.

    Aptitude рекомендовал удаление. 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.

Связанный контент