накидал для этого скриптик, обозвав его emerge-show-affected:
Вот, напрпимер так можно сохранить бинарные версии пакетов, которые будут затронуты при обновлении мира, чтобы потом при необходимости восстановить:
. ./emerge-show-affected -auD world | xargs quickpkg --include-config=y
Ещё несколько примеров:
Сохранить список изменяемых пакетов:
emerge-show-affected -auD world > ./list.txt
А так, например, посмотреть, что произойдет, если захочется перейти на нестабильную ветку.
ACCEPT_KEYWORDS="~amd64" . ./show-affected-emerge --update world
Посмотреть, что изменится, подгрузив список строк-параметров. например имён пакетов или параметров emerge.
. ./emerge-show-affected - < ./list.txt
Посмотреть что изменится при обновлении системы подгрузив список программ, подлежащих обновлению из файла ./list.txt и сохранив результат в файл ./result.txt.
. ./emerge-show-affected - --update --newuse <./list.txt> ./result.txt
В общем — терпимый базовый набор функционала. Того, который мне требуется.
Скрипт — простой набросок, который выбирает из вывода emerge записи, указывающие на обновление-удаление-пересборку пакетов и выдаёт их полные названия пользователю.
Сырость заключается в том, что при неправильном запросе к emerge результат будет ошибочным.
#!/bin/bash
# emerge-show-affected
# show affected packages when emerge execute
#echo "a"
#b="init"
# if parameter "-" present, read stdin as adititional parameters list
#
# example:
# $0 -uD world - < /path/to/addititional/list.txt
#
# example w/o stdin reading:
# $0 -uD world
#
params=""
needForSTDIN="false"
for i in $@; do
if ! [ "$i" = "-" ]; then
params="$params $i"
else
needForSTDIN="true"
fi
done
if [ $needForSTDIN = "true" ]; then
read -d@ params2
fi
params="${params} ${params2}"
if ! [ -z "$params" ] ; then
emerge -p --color n $params | egrep "ebuild.*[D|U|R].*\]" | awk '{print $4}'
fi
Комментариев нет:
Отправить комментарий