Безопасное удаление пакета в Gentoo

Безопасное удаление пакета в Gentoo

Я хотел удалить определенный пакет в Gentoo и просмотрел страницу руководства emerge. Я нашел опцию --unmerge:

ВНИМАНИЕ: Это действие может привести к удалению важных пакетов!Удаляет все соответствующие пакеты. Это не проверяет зависимости, поэтому может удалить пакеты, необходимые для правильной работы вашей системы. Его аргументами могут быть атомы или ebuild-файлы. Для версии с учетом зависимостей --разъединить, использовать--depcleanили--чернослив.

Однако я хотел бы, чтобы emerge проверял, требуется ли пакет, который я хочу удалить, каким-либо другим установленным пакетом в системе, --depcleanи --pruneне предоставлял такую ​​функциональность:

  • --depcleanудаляет пакеты, которые были установлены как зависимости, но больше не нужны
  • --prune"удаляет из вашей системы все пакеты, кроме последней установленной версии"

Нет ли версии с проверкой зависимостей --unmerge?

решение1

Я не думаю, depcleanчто это работает так, как вы описали. Без аргументов это работает, но если вы передаете ему имя пакета, это работает так, как unmergeс дополнительной проверкой зависимостей. Из emerge(1):

Depclean служит версией , учитывающей зависимости --unmerge. При указании одного или нескольких атомов он разъединит соответствующие пакеты, не имеющие обратных зависимостей. Используйте --depcleanвместе с --verbose, чтобы показать обратные зависимости.

Я всегда использую --depclean( -c) для разделения отдельных пакетов; это отлично работает.

решение2

Другой способ достичь того же результата (хотя это не команда, которая отменяет слияние с проверкой зависимостей): emerge --deselect package, которая удаляет пакет из файла мира. Теперь запуск emerge --depcleanудалит этот пакет, если он не требуется никакому другому пакету.

решение3

На помощь приходит gentoolkit:

equery d <atom>

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

решение4

Иногда emerge --unmergeвыдает такое предупреждающее сообщение:

 * This action can remove important packages! In order to be safer, use
 * `emerge -pv --depclean <atom>` to check for reverse dependencies before
 * removing packages.

Кажется, это рекомендуемый способ проверки зависимостей перед удалением пакета. Я все еще надеюсь, что есть лучший, более автоматизированный способ сделать это.

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