LINUX.ORG.RU

Востановление world

 , ,


2

1

После некой операции(вроде после emerge -ave @world) случилась странная задница и пропали все записи в world файле.

Требуется восстановить его. Как можно из существующих selected - уже установленных пакетов выбрать те, которые не зависят ни имеют зависимостей?

Pinkbyte

★★★★★

В теории, можно из emerge.log восстановить. Если он, конечно, не ротировался.

Black_Shadow ★★★★★
()
Последнее исправление: Black_Shadow (всего исправлений: 1)
Ответ на: комментарий от funeralismatic

Ок, я просто спросил про прогресбар, думал это легко будет зафигачить туда через pipe...

Уже робит. Пока все отлично!

deterok ★★★★★
() автор топика
# regenworld --help
This script regenerates the portage world file by checking the portage
logfile for all actions that you've done in the past. It ignores any
arguments except --help. It is recommended that you make a backup of
your existing world file (/var/lib/portage/world) before using this tool.
Black_Shadow ★★★★★
()
Ответ на: комментарий от deterok

прогресбар

Нафиг лишняя нагрузка на процессор? Главное — оно нормально отработает. Минус только в том, что я не учёл попадание @system в world. И придумать как это можно обойти не могу — нужно хитро парсить выхлоп, но я не смог приручить sed.

funeralismatic ★★★
()
Ответ на: комментарий от deterok

Их там много. Базовые профили, профили, подпрофили — там конкатенация и сильно хитрая система, короче, не для парсинга из баша.

emerge -qp @system | awk '{print $4}', дальше развить мысль не смог.

funeralismatic ★★★
()
Последнее исправление: funeralismatic (всего исправлений: 1)
Ответ на: комментарий от Black_Shadow

Анализ логов не найдёт ручные правки world.

Именно поэтому я предложил наколенный, но более надёжный вариант.

funeralismatic ★★★
()
Ответ на: комментарий от funeralismatic

Конечно, я сильно слукавил — оно повторно парситься не будет, но лишнее вхождение таки будет, а значит, емерж таки потеряет лишнее время на это.

funeralismatic ★★★
()
Ответ на: комментарий от deterok

А как прикрутить прогресбар? Что-то такое я помню было в bash :)

for WTF in $(eix-installed -a); do
	equery -q d ${WTF} >/dev/null || echo ${WTF} >> /var/lib/portage/world ; echo -n '#'
done
echo

Поштучно.

pS
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.