Я хотел удалить определенный пакет в 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.
Кажется, это рекомендуемый способ проверки зависимостей перед удалением пакета. Я все еще надеюсь, что есть лучший, более автоматизированный способ сделать это.