Я знаю о Как удалить зависимости неустановленного пакета? и я попытался
apt-get autoremove
, но это не удаляет зависимости, которые рекомендуются / предлагаются другими пакетами.
То есть, если я устанавливаю пакет X, который рекомендует Y, но я не устанавливаю Y, а затем я устанавливаю пакет Z, который зависит от Y. Позже я делаю
apt-get remove --auto-remove Z
, тогда Y не удаляется автоматически, хотя от этого ничего не зависит. (X «поднял» Y, хотя это не зависит от него).
Если вы хотите удалить рекомендуемые пакеты из вашей системы, даже если все еще есть некоторые установленные пакеты, рекомендующие (или предлагающие) их, поместите в файл /etc/apt/apt.conf.d/99_norecommends
(создайте его) следующее: 117] Документация по этим опциям находится здесь .
Затем, следующий удачный прогон должен удалить их всех. Если этого не произойдет, запустите aptitude
и введите g kbd> и g kbd> еще раз.
Эта конфигурация также отключает автоматическую установку рекомендуемых пакетов при использовании apt-get
. Для aptitude
это можно сделать из графического интерфейса консоли, меню «Параметры»> «Установки»> «Автоматически устанавливать рекомендуемые пакеты» (снимите этот флажок).
В отличие от зависимостей, автоматически устанавливаемые «рекомендуемые» или «предлагаемые» пакеты могут игнорироваться apt-get autoremove
.
Как описано в другом месте, это поведение APT может быть изменено в конфигурации.
Аналогично, конфигурация команды apt-get
может быть временно изменена с помощью опции командной строки -o
.
Таким образом, вы заставляете autoremove удалять оставшиеся «рекомендуемые» и «предлагаемые» пакеты в дополнение к неиспользуемым зависимостям.
sudo apt-get autoremove -o APT::Autoremove::RecommendsImportant=0 -o APT::Autoremove::SuggestsImportant=0
Некоторые функции могут быть потеряны. Будьте готовы исследовать и переустанавливать вещи. Может быть легче оставить эти пакеты в покое.
Чтобы удалить «рекомендуемые» и «предлагаемые» пакеты исключительно для конкретного пакета, взгляните на журнал истории apt.
На самом деле команда:
sudo apt-get autoremove <Z>
Но в этом есть хитрость! Если у какой-либо из зависимостей есть другие ранее установленные пакеты, которые рекомендуют / предлагают их, то apt не удалит их.
Вы не указали, что это за пакет, но, например, если бы я установил плагин IcedTea, он установил бы Java / OpenJRE по зависимостям. Если я удалю их, используя sudo apt-get autoremove icedtea-7-plugin
, вы заметите, что он не удалит Java / OpenJRE, поскольку LibreOffice также предлагает пакеты.
Итак, чтобы удалить их, вы должны быть слишком конкретны в отношении пакета, который хотите удалить, что обычно не autoremove
:
sudo apt-get autoremove <Z> <dependency of Z>
Таким образом, вы можете быть уверены, что ваш пакет будет удален.
Вы также можете использовать deborphan для удаления некоторых зависимостей.
Правильно, если вы хотите удалить пакет <Z>
с зависимостями, просто введите:
sudo apt-get autoremove --purge <Z>