Почему делает удаление “метапакета” не, удаляют зависимости, которые оно установило?

Если я пытаюсь удалить метапакет, apt на самом деле не удаляет зависимости метапакета, только сама "обертка". Работая apt autoremove, эти подпакеты не перечислены. Я нахожу его путающий это autoremove удаляет зависимости для большинства нормальных пакетов, но не многих метапакетов. Почему это?

3
задан 21 January 2019 в 00:51

2 ответа

Метапакеты не являются волшебными ни в каком отношении: понятие "метапакета" не является частью системы APT - метапакет является просто пакетом, который не имеет фактического содержания, просто зависимости. Так удаление их имеет тот же эффект как удаление пакета с фактическим содержанием, которое также зависит от некоторого другого материала, как веб-сервер, модуль приложения потребует веб-сервера, но когда Вы удалите его - веб-сервер должен все еще остаться установленным.

Однако APT отслеживает, которых были автоматически установлены пакеты, потому что другой пакет запросил их (как метапакет, запрашивающий "фактические" пакеты или модуль приложения веб-сервера, требующий веб-сервера), и после того как Вы удаляете пакет требования, APT предположит, что Вы работаете apt autoremove избавиться от таких автоматически установленных пакетов.

Основная проблема с "метапакетами", поскольку они используются в операционной системе Ubuntu, состоит в том, что они зависят от большого количества пакетов, по существу устанавливая огромный выбор программного обеспечения с единственной установкой. При установке такого количества пакетов особенно таким образом, которые очень тесно связаны - можно получить много перекрестных зависимостей: meta пакет требует пакетов A, B и C для Вас, но A также зависит от B и B (возможно, удивительно), также зависит от A. Таким образом, если Вы удаляете метапакет, только C будет удален.

Как конкретный пример, позволяет, рассматривают метапакет LXDE lubuntu-desktop:

  • lubuntu-desktop требует lxqt-core
  • lxqt-core требует lxqt-panel
  • lxqt-panel зависит от lxqt-core. На самом деле эта зависимость не Requires, но Recommends - но это должно быть достаточно, чтобы Кв. решила не автоматически удалить любой пакет.

Следующие ответы имеют больше деталей:

3
ответ дан 1 December 2019 в 15:32

ВСЕ пакеты, установленные установщиком повсеместности Ubuntu, способно отмечены 'Руководство' (вместо 'Автоматического), делая все те пакеты не имеющими права на автоудаление.

Можно все еще удалить их, конечно, Вы просто не можете автоудалить их.

Сервер Ubuntu, Минимальное Изображение и Облачные установщики Изображения не основаны на повсеместности, и их пакеты имеют право на автоудаление.

Если Вы не знакомы со способной маркировкой, это просто, как склонный отслеживает, которых зависимости были указаны администратором ('Руководство'), и которые были втянуты как ('Автоматические') зависимости. Посмотрите man apt-mark для получения дополнительной информации об этом.

Причина нестандартного поведения Повсеместности состоит в том, чтобы защитить Вас: Люди изменяют свои настольные системы во всех видах путей, включая пути, которые требуют удаления метапакета. Большинство пользователей обычно не намеревается удалить свой весь рабочий стол, делание настолько неожиданного может быть довольно Значительным Эмоциональным Событием, таким образом, разработчики Ubuntu внесли изменение для защиты пользователей от их собственного (непреднамеренного) безумия. В конце концов, Ubuntu предназначается для новых и пользователей низкой квалификации, также.

Люди, которые хотят сократить их пакеты к, что они на самом деле используют (все мы попробовали это в какой-то момент) найдут намного легче начать с Минимального Изображения и расти, а не бороться со способной маркировкой для сокращения.

2
ответ дан 1 December 2019 в 15:32

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

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