У меня есть сценарий, в котором я хотел бы удалить набор пакетов, которые могут или не могут быть установлены, и я хотел бы, чтобы apt-get удалил те, которые есть, и молча проигнорировал те, которые не были. Что-то вроде:
apt-get remove foo bar baz
который, если бы foo и bar были установлены, но baz не был установлен, удалил бы foo и bar без жалоб на baz. Есть ли способ сделать это?
Вещи, которые я пробовал, которые не работали, с cups-dbg в качестве фактически установленного пакета моего козла отпущения:
jcp@a-boyd:~$ sudo apt-get remove -y cups-dbg bogus-package
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package bogus-package
jcp@a-boyd:~$ sudo apt-get remove --ignore-missing cups-dbg bogus-package
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package bogus-package
jcp@a-boyd:~$ sudo apt-get remove --fix-broken cups-dbg bogus-package
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package bogus-package
Я знаю, что мог бы сделать это с помощью сценария оболочки и некоторой dpkg --list
магии, но я хотел бы избежать любой сложности, которая не является абсолютно необходимой.
Ответы:
Является ли вариант возврата к инструменту более низкого уровня, такому как dpkg ?
Для удаления пакетов конфигурационных файлов используйте purge, как показано ниже
источник
Я использую
apt-get remove --purge
(акаapt-get purge
) для следующей зависимости со списком пакетов. Для обработки пакетов, которые не существуют, я отфильтровываю пакеты, которые не установлены с помощью следующего сценария.источник
Для Debian ≤ 9 можно просто использовать
aptitude
вместоapt-get
:Aptitude выводит предупреждения, но тем не менее продолжает удалять ваши пакеты:
Если вы хотите очистить (удалить файлы конфигурации пакета), а не удалить (сохранить файлы конфигурации), обратите внимание, что
aptitude
удаляются только те пакеты, которые были предоставлены напрямую, а неиспользуемые зависимости удаляются. Однако вы можете удалить все удаленные пакеты на втором этапе:источник
bogus-package
просто было неправильное имя. так что, если у нас было около 500 пакетов, было бы лучше проанализировать фиктивные пакеты и сделать некоторые трюки (например, числа после имени нехватки и т. д.), поэтому, можете ли вы дать несколько советов о том, как это сделать? ..Couldn't find any package whose name or description matched 'QUX' Unable to apply some actions, aborting
Еще один маленький 2-х слойный, если кому-то нужно использовать apt:
Explination:
источник