Пролистал Gentoo Handbook, но так и не нашёл ответа на вопрос что же такое system, и чем оно отличается от world. Что делает emerge -e system (взято из описания установки из stage1), например?
system - это жёстко заданный набор пакетов, необходимых для работы системы. Список этих пакетов размазан по нескольким файлам с именем packages в подкаталогах каталога /usr/portage/profiles и зависит от выбранного профиля (симлинк /etc/make.profile).
world - это те пакеты, которые ты сам поемёржил (автоматически установленные зависимости туда не входят). Список хранится в файле /var/lib/portage/world.
Как, по случаю установки свежей версии GCC, пересобрать все программы? emerge --update --newuse --deep world только освежит всё что можно освежить и всё что связано зависимостями. Надо действовать просто, emerge world?
На прокив текущей версии gcc стоит зеленая звездочка. Также показывает все установленные версии gcc. Для того чтоб переключить использование системой другой версии gcc, тебе необходимы выполнить gcc-config <номер версии>. Например:
# gcc-config 1
* Switching native-compiler to x86_64-pc-linux-gnu-3.4.6 ...
>>> Regenerating /etc/ld.so.cache... [ ok ]
* If you intend to use the gcc from the new profile in an already
* running shell, please remember to do:
* # source /etc/profile
...ну и понятное дело выполнить то что сказано.
Чтоб пересобрать все программы, нужно выполнить emerge -e world
О как оказывается. То есть emerge gcc недостаточно чтобы использовать свежий компиляторы? Нужно ещё запустить gcc-config -l. А какие ещё программы надо подобным образом конфигурировать после установки? Glibc, binutils? Откуда можно почерпнуть такие глубокие знания?
Ну glibc в системе бывает только один. :) А вот разные версии gcc и binutils запросто можно держать. Поэтому есть gcc-config, binutils-config, ещё java-config и т. д. В последнее время все эти скрипты плавно вытесняет eselect.
На серверочке всё собралось на ура. А вот на десктопе есть проблемы. world с зависимостями это почти 600 пакетов. Собрать их разом не получается, то один, то другой выдают ошибки, приходится менять для них USE-флаги, маскировать версии. Но если ошибка вылезла пакете, так, на трёхсотом, не собирать же всё заново. Как можно собирать world частями? А лучше, как продолжить сборку world от точки останова?