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

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

apt-get autoremove

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

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

apt-get remove --auto-remove Z

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

16
задан 13.04.2017, 15:24

4 ответа

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

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

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

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

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

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

Внимание!

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

Другие опции

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

7
ответ дан 09.10.2019, 17:34
  • 1
    только к анализируют такие пакеты, работают пробный прогон с apt-get ' опция s -s и канал к grep ^Remv — так that' s команда: apt-get autoremove -s -o APT::Autoremove::RecommendsImportant=0 -o APT::Autoremove::SuggestsImportant=0 | grep ^Remv – John 03.03.2019, 23:53

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

sudo apt-get autoremove --purge <Z>
-1
ответ дан 09.10.2019, 17:34
  • 1
    Спасибо, но к сожалению, добавляя " - purge" просто удаляет конфигурации пакетов, которые удалены с " autoremove". но насколько я вижу, это не изменяет решение [приблизительно 110] который пакеты для удаления. Таким образом, зависимости Z, которые предлагаются некоторым существующим ранее пакетом X, все еще не удалены, определяю ли я " - purge". – Rex Kerr 09.10.2013, 21:37
  • 2
    Кроме того, autoremove работы в масштабе всей системы. Таким образом каждый раз, когда Вы звоните autoremove, это удалит все неиспользованные пакеты в Вашей системе. Установка пакета, тогда autoremoving не будет обычно возвращать систему тому же состоянию и вместо этого оставит набор " leftover" пакеты. – userOVER9000 29.01.2018, 21:51

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

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

1
ответ дан 09.10.2019, 17:34
  • 1
    Между прочим, мое понимание из способной страницы справочника, это автоудаляет, не ожидает имя пакета и просто уберет все ненужные зависимости от пакета в системе. Таким образом, необходимо было бы сделать 2 шага: " склонный - добираются, удаляют Z" сопровождаемый " склонный - получают autoremove". эти 2 шага могут быть сделаны сразу с " склонный - добираются, удаляют - автоудаляют Z" как упомянуто в моем исходном вопросе. Но как я сказал, проблема состоит в том, что существуют некоторые оставшиеся пакеты, которые не удалены, если им предложило что-то еще. – John 09.10.2013, 21:26
  • 2
    Да, Вы описали мою проблему отлично.Спасибо. Но к сожалению, Вы не решили его, потому что я не хочу переходить к /var/log/apt/history.log и искать все пакеты Y, что, где установлено несколько месяцев назад с Z (в Вашем примере, Y=java/jre, плагине Z=icedtea) и затем вручную добавляют всех их к способной командной строке. Я хочу только определить Z и остальную часть зависимостей, которые будут взяты автоматически, , даже если им предлагает другой существующий пакет X (X=libreoffice в Вашем примере). – Jason S 09.10.2013, 21:29
  • 3
    К сожалению, это - способ, которым работает способная система, это предпочитает сохранять пакеты установленными, а не удалять их, даже если они больше не нужны. Единственный способ удалить их вручную или с deborphan, но deborphan может пропустить некоторые пакеты все еще. Можно использовать эти Debug:: опции и также проверить мой другой ответ об этом . Можно также использовать эти --no-install-recommends, но склонный - получают don' t устанавливают предложенные пакеты по умолчанию. – John 09.10.2013, 21:46
  • 4
    @user2809402 необходимо также проверить askubuntu.com/q/244470/169736 – Abiel 09.10.2013, 21:52
  • 5
    Braiam-спасибо за deborphan указатель. Я проверю его. – Rex Kerr 09.10.2013, 23:10

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

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

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

14
ответ дан 09.10.2019, 17:34
  • 1
    Я wouldn' t рекомендуют не установить рекомендации, поскольку они большую часть времени полезны . – userOVER9000 03.01.2014, 02:37
  • 2
    @Braiam Это не что OP, который спрашивают все же. Ваш комментарий для него, не для меня. – Erich Schubert 03.01.2014, 02:40
  • 3
    I' m, просто говоря это that' s, возможно, излишество. – ewerlopes 03.01.2014, 02:40
  • 4
    @Braiam That' s Ваш POV. Я живу вполне прилично с InstallRecommends отключенный. Для записи это было отключено по умолчанию, пока Debian Не Сжимают выпущенный, который является с февраля 2011 (don' t знают о Ubuntu). Кроме того, Вам, возможно, не понадобится та же конфигурация на сервере или настольной установке. – Ryan J McCall 03.01.2014, 02:43
  • 5
    InstallRecommends: Поскольку, почему установка 5 МБ материала Вы хотите, когда Вы могли также установить 1 ГБ материала Вы don' t хотят? – Ryan J McCall 31.01.2017, 20:56

Теги

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