Как правильно выполнить рекурсивную очистку с помощью apt?

Как правильно выполнить рекурсивную очистку с помощью apt?

Я только что понял, что не уверен, как выполнить очистку с помощью Apt, которая очистит все зависимости. Я читаю здесь и там и все еще не уверен, есть ли эти кандидаты:

apt purge --auto-remove <packagename>

и (после предварительной очистки некоторых пакетов):

apt autoremove --purge

Правильны ли они? Эквивалентны? Есть ли лучший способ?

решение1

Оба варианта верны, но не совсем эквивалентны.

apt purge --auto-remove <packagename>

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

apt autoremove --purge

удаляет все пакеты, которые не нужны (отмечены как «автоматически установленные» и не имеющие зависимых пакетов).

Первая форма используется при работе с отдельными пакетами; вторая — операция очистки всех пакетов.

Вы также можете включить APT::Get::AutomaticRemoveв своей aptконфигурации функцию aptавтоматического удаления (или использовать функцию aptitude, которая по умолчанию ведет себя именно так).

решение2

Предложенные ОП команды исуществующий ответверны, особенно согласно странице руководства, но оказывается, aptчто поведение немного более гибкое, чем предполагает документация.

Чтобы сделать командную строку более краткой при удалении пакета и его автоматически установленных зависимостей, выможетукажите имя пакета для команды autoremove, например apt autoremove <pkg>, в этом случае она будет вести себя как apt remove --autoremove <pkg>. Таким образом, apt autoremove --purge <pkg>и apt purge --autoremove <pkg>обе команды дадут одинаковый результат.

Идя дальше, apt autopurge <pkg>ведет себя так же, как и каноническая форма apt remove --purge --autoremove <pkg>, и, по-видимому, является наиболее лаконичным способом достижения рекурсивной очистки.

Документировать или нет это поведение, по-видимому,был спорнымсреди разработчиков.

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