Как удалить рекомендуемые и предлагаемые зависимости неустановленных пакетов?

Я знаю о Как удалить зависимости неустановленного пакета? и я попытался

apt-get autoremove

, но это не удаляет зависимости, которые рекомендуются / предлагаются другими пакетами.

То есть, если я устанавливаю пакет X, который рекомендует Y, но я не устанавливаю Y, а затем я устанавливаю пакет Z, который зависит от Y. Позже я делаю

apt-get remove --auto-remove Z

, тогда Y не удаляется автоматически, хотя от этого ничего не зависит. (X «поднял» Y, хотя это не зависит от него).

16
задан 13 April 2017 в 15:24

4 ответа

Если вы хотите удалить рекомендуемые пакеты из вашей системы, даже если все еще есть некоторые установленные пакеты, рекомендующие (или предлагающие) их, поместите в файл /etc/apt/apt.conf.d/99_norecommends (создайте его) следующее: 117] Документация по этим опциям находится здесь .

Затем, следующий удачный прогон должен удалить их всех. Если этого не произойдет, запустите aptitude и введите g и g еще раз.

Эта конфигурация также отключает автоматическую установку рекомендуемых пакетов при использовании apt-get. Для aptitude это можно сделать из графического интерфейса консоли, меню «Параметры»> «Установки»> «Автоматически устанавливать рекомендуемые пакеты» (снимите этот флажок).

0
ответ дан 13 April 2017 в 15:24

Переопределение параметров APT

В отличие от зависимостей, автоматически устанавливаемые «рекомендуемые» или «предлагаемые» пакеты могут игнорироваться apt-get autoremove.

Как описано в другом месте, это поведение APT может быть изменено в конфигурации.

Аналогично, конфигурация команды apt-get может быть временно изменена с помощью опции командной строки -o.

Таким образом, вы заставляете autoremove удалять оставшиеся «рекомендуемые» и «предлагаемые» пакеты в дополнение к неиспользуемым зависимостям.

sudo apt-get autoremove -o APT::Autoremove::RecommendsImportant=0 -o APT::Autoremove::SuggestsImportant=0

Внимание!

Некоторые функции могут быть потеряны. Будьте готовы исследовать и переустанавливать вещи. Может быть легче оставить эти пакеты в покое.

Другие опции

Чтобы удалить «рекомендуемые» и «предлагаемые» пакеты исключительно для конкретного пакета, взгляните на журнал истории apt.

0
ответ дан 13 April 2017 в 15:24

На самом деле команда:

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 для удаления некоторых зависимостей.

0
ответ дан 13 April 2017 в 15:24

Правильно, если вы хотите удалить пакет <Z> с зависимостями, просто введите:

sudo apt-get autoremove --purge <Z>
0
ответ дан 13 April 2017 в 15:24

Другие вопросы по тегам:

Похожие вопросы: