
Я хотел бы удалить большинство пакетов в категории X11 из моей системы. Однако некоторые из этих пакетов зависят от пакета 'beaglebone'. Как я могу попросить aptitude удалить все в категории X11, за исключением пакетов, зависящих от 'beaglebone'?
Ниже вы можете увидеть, что он рекомендует «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.