Напиши сценарий который строчка за строчкой прочитает /var/lib/portage/world и удалит пакеты один за другим. Потом emerge -uND world && emerge --depclean && revdep-rebuil (для последнего потребуется gentoolkit). Знатоки программирования, подскажите команду чтобы в начало каждой строчки файла добавить "emerge -C ". Применяем это к /var/lib/portage/world, потом sh /var/lib/portage/world.
хммм. а зачем?
как по мне лучше сделать либо так:
просмотреть world и решить чего нафиг не надо. снести. потом dep'ом (app-portage/udept)почистить от пакетов которые теперь не нужны (удалились те пакеты которые их хотели по зависимостям). только аккуратно надо - dep не всегда корректно чистит, может и лишнего начистить. в принципе так можно и систем только оставить (рассматривать все в world как ненужное).
а вообще если все _настолько_ плохо, что хочется оставлять только system, то имхо проще забэкапить все нужные конфиги и данные и переставить с нуля.
если просто места осталось мало - стоит почистить /usr/portage/distfiles (если не отдельный раздел конечно) от старых тарболлов, если еще не чистил.
>Напиши сценарий который строчка за строчкой прочитает /var/lib/portage/world и удалит пакеты один за другим. Потом emerge -uND world && emerge --depclean && revdep-rebuil (для последнего потребуется gentoolkit). Знатоки программирования, подскажите команду чтобы в начало каждой строчки файла добавить "emerge -C ". Применяем это к /var/lib/portage/world, потом sh /var/lib/portage/world.
зачем так извращенно? emerge -C вполне принимает список пакетов как параметр. если очень хочется каждый раз пускать emerge -C, то:
Можно еще такой подход:
1) Удаляем из /var/log/portage/world все лишнее.
2) Запускаем emerge --depclean -p
3) Смотрим, что в списке есть нужного, и добавляем это в world
командой emerge --noreplace app/foo
4) Запускаем emerge --depclean
Дальше можно еще опциально, как уже советовали, почистить
distfiles (смотри в сторону eclean-dist из пакета gentoolkit)
>я новичок в gentoo, в линуксе в целом лет этак 7. просто проще спросить, чем перебирать огромное дерево портежей в поисках нужной утилиты :)
кстати перебирать все дерево и не надо, достаточно посмотреть в только в категории app-portage, а там десятка три пакетов. деревцо portage весьма не зря на категории разбито ;)
сделай cat /var/lib/portage/world
посмотри какие пакеты тебе не нужны и снеси их emerge --unmerge ...
потом сделай emerge --depclean (удаление ненужных зависимостей)
потом отключи все ненужные USE-флаги
потом сделай emerge -uDN world (пересобери с новыми флагами)
потом сделай emerge gentoolkit (поставь gentoolkit)
ну а потом запусти revdep-rebuild...
>потом отключи все ненужные USE-флаги
после этого вполне могут возникнуть ненужные пакеты, так что depclean лучше делать после этого. и, насколько я помню, он нерекурсивный, так что процедуру чистки зависимостей возможно придется делать несколько раз. кстати dep (udept) все-таки вроде получше родного emerge --depclean чистит, и рекурсивно умеет (правда тогда он думает долго).