до unmerge внести в world пакеты,от которых зависит удаляемый

Нужно удалить пакет package1, находящийся в world, зависящий на первом уровне от package11, package12, ... package1N, которые не включены ни в system, ни в world. При этом package11, package12, ... package1N предполагается оставить в системе.

Существует готовая утилита, которая пропишет package11, package12, ... package1N в world до удаления?
Чтобы emerge --depclean их не удалил, как неиспользуемые.
Пусть впишутся все пакеты сразу, если что, потом лишние можно убрать dep -w

В качестве примера: package1=zabbix, package11..1N= net-snmp, curl, fping, mysql и т.д.
Или, удаляется некоторая управлялка system-config-lvm, и один из пакетов, от которого она зависит - lvm2

В случае, если удаляется только package1, еще можно справиться руками с помощью dep -l package1
А если package1 ... packageM, и М достаточно большое, да и сами пакеты большие, то уже трудно.

задача:

задача: сформировать список пакетов, от которых зависит только определённая программа и никакая другая
этот список можно сформировать с помощью чегото вроде: emerge -p -depclean + sed для очистки вывода

emerge -p -depclean даст

emerge -p -depclean даст результат только если пакет уже удалён. А мне надо до удаления.

сделал emerge

сделал emerge --depclean -p оно мне показало что хочет удалить.

--depclean

--depclean показывает те пакеты, от которых зависели другие ранее удалённые Вами пакеты.

Вот если у Вас есть пакет, то посмотреть пакеты, от которых он зависит, можно dep -l этот_пакет (или dep -t -Dглубина этот_пакет). Если Вы сделаете emerge --unmerge этот_пакет, то потом --depclean покажет кандидатов на удаление (т.е. пакеты ранее перечислявшиеся dep -l этот_пакет), они кандидаты потому, что теперь на них никто не ссылается и они не прописаны в world/system.

В случае удаления одного пакета этот_пакет, я могу посмотреть перед его удалением dep -l этот_пакет и поместить часть этого перечня в world. Но если я планирую удалять достаточно много больших пакетов, то делать это трудно. Поэтому и задал вопрос про утилиту для пополнения world.

dep -w позволяет почистить world от пакетов, которые там зря находятся, т.к. в world уже есть пакеты, зависящие от "зря находящихся". А вот обратной операции я не нахожу, т.е. пополнить world пакетами, для которых зависящих от них уже нет, а в world они не прописаны.

Видимо, всё сводится к тому, чтобы автоматом сделать 2 операции - как-то пополнить world всеми установленными пакетами без номеров версий, а потом убрать оттуда с помощью dep -w все излишки. Только как наилучшим способом сделать первую операцию, я не знаю.

По первому...

...навскидку можно попробовать

find /var/db/pkg/* -mindepth 2 -maxdepth 2 | cut -d"/" -f6 | sort -u

или

equery list | cut -c1-

автоматически

автоматически вродебы нет, но оно и нечасто нужно - depclean достаточно опасная команда, и перед её использованием можно позапускать с -pv и записать в world то что нужно.

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".