Я обновился до него, полет пока нормальный. Вот только не знаю, обязательно ли делать
revdep-rebuild --library 'libstdc\+\+.so.6'
или нет. На серваке сделал, что потребовало пересборку почти всего мира. На домашнем и рабочем компе не делал, но вроде никаких негативных последствий от этого не ощущаю.
Ну дома я бы мог это сделать. Но на работе исключено однозначно. Просто физически невозможно уложиться в рабочий день, а на ночь комп оставить нельзя: у нас серьезная политика по поводу техники безопасности.
Я сделаю проще. По причине трудности обновления Gentoo на работе у меня уже несколько месяцев есть сервер, на котором я собираю бинарные пакеты. Правда, с ним как раз сейчас случилась небольшая накладка, но к концу недели я ее разрулю. Обновлю там все пакеты в соответствии с libstdc++.so.6, затем сделаю revdep-rebuild дома, затем на работе. Оба компа все эти бинарные пакеты с сервака проглотят. И таким образом времени на обновление будет потрачено намного меньше.
Может тогда достаточно сделать «emerge -e system»? Если ты говоришь, что уже установленное не сломается, а вот всякие компилляторы и прочие системные файлы, необходимые для сборки, как раз нужно пересобрать и они в system как раз находятся. А то revdep-rebuild тянет просто рехнуться сколько пакетов, к тому же тяжелых. У меня на серваке получилось свыше 250 штук.
Наверное стереотип, но обычно Гентушник после этой фразы начинает перечислять магические заклинания, недоступные простым смертным. :)
Тоже охота сделать сборку бинарных пакетов на сервере gcc, glib, llvm, firefox, thunderbird, webkit-gtk и т.п., но только чтобы это было просто, надёжно и полный дубль системы не держать.
revdep-rebuild пересоберет только то, что нужно и ничего лишнего.
Только вначале полдня парсит либы. Пятьдесят один пакет пересобрался быстрее, в их числе из жирного blender, inkscape, firefox, llvm. Башескрипты, и этим всё сказано.
Если у тебя долго собираются даже gcc, glib(c?), то явно пришла пора апгрейда.
sys-libs/glibc-2.22-r1 18min, dev-libs/glib-2.46.2 3min, sys-devel/gcc-4.9.3 30min. Хочется, чтобы вместо минут стояли секунды, как если из бинарных пакетов ставишь.
Если надумаешь, обращайся. Могу поделиться своим опытом, советами и даже парой скриптов.
chroot чреват проблемами, pump emerge (distcc) иногда косячит, подумываю о сборки в Qemu (KVM) - есть libvirtd+webvirtmgr на сервере. Если есть решение проще, то мне б только наводку, а дальше сам... Хотя ближайшее время забито делами, в НГ похоже...
В своём оверлее держу с патчем, решающим проблему отсутствующих записей в логах emerge, если для Portage изначально используется Git с момента установки системы.
На сервере под ccache отдельный раздел выделен в RAID-0 даже. :)
На ноуте хочется, чтобы от состояния всей системы с gcc 4.9.3 до 5.3.0 проходило не более 10-20 минут, для чего всё-равно надо бинарники собирать где-то.
Я у хостера арендую VDS с KVM (2-ядерный процессор, 1 ГБ RAM, 60 ГБ жесткий диск и ~8-10 ГБ раздел подкачки или файл подкачки), в которую поставил вполне нормальную и полноценную Gentoo, без всяких chroot'ов. На VDS есть nginx, который указывает на директорию, в которой находятся собранные пакеты. У меня, например, это /var/packages. На клиентах в /etc/make.conf есть строка:
На сервере мир обновляется автоматически каждые 2 часа с помощью моего самописного скрипта и crontab. При обновлении мира автоматически генерятся бинарные пакеты. Если по каким-либо причинам обновление прошло неудачно (пакет не смог собраться или потребовались дополнительные USE-флаги), то мне на телефон об этом приходит SMS. Я в таких случаях лезу по SSH на сервер и исправляю проблему.
Таким образом, получается практически полная автоматика. :)
По ресурсам имею даже больше, только вместо Nginx - Lighttpd, скрипт самописный тоже есть, вместо SMS будет, видимо, почта, мне она больше нравится.
Единственное, что волновало - под KVM должна архитектура процессора быть не хуже, хотя сейчас дошло, что можно же собирать бинарники, не устанавливая их в гостевую систему. Тогда вообще получается всё просто.
Ну добавь опцию -g в свой make.conf в тот комп, который ты хотел бы обновлять при помощи бинарников (клиент).
А на сервере в EMERGE_DEFAULT_OPTS обязательно должна стоять опция -b , иначе он бинарники формировать не будет.
Ну и для более подробной информации man emerge
И еще есть инструкция в официальной вики.