Обновление Gentoo Linux

Обновление Gentoo Linux несколько нетривиально по сравнению с другими дистрибутивами. В user-friendly дистрибутивах таких как Mandriva, OpenSUSE, Ubuntu за Вас все сделает менеджер управления пакетами, достаточно лишь озадачить его этим. В Gentoo Linux также имеется система управления пакетами под названием Portage которая разруливает зависимости и делает процесс обновления намного легче чем например в Slackware.

Однако в силу того что Gentoo является source-based дистрибутивом (весь софт компилируется из исходных кодов) появляются некоторые особенности. Например Вы не сможете обновить ядро автоматически как в Ubuntu где оно поставляется одинаковым для всех.
Для начала нам нужно иметь работающее подключение к интернету и прописанную переменную адреса сервера в файле /etc/make.conf с которого будет обновляться дерево portage. Я обновляюсь с зеркала яндекс поэтому в make.conf прописал именно его

GENTOO_MIRRORS="http://mirror.yandex.ru/gentoo-distfiles/"

Следующим шагом нужно синхронизировать дерево портов командой

emerge --sync

Далее запускаем полное обновление системы с учетом всех зависимостей:

sudo emerge -avquDN world

Portage выведет список всех доступных обновлений с указанием версий пакетов и используемых USE флагов
Если список используемых USE флагов и пакетов для обновления Вас устраивает можно начать сборку.

В качестве небольшого хинта: Для того чтобы не писать каждый раз emerge и некоторые его постоянно использующиеся ключи я добавил алиасы (добавочные имена) в файлы ~.bashrc и .bash_profile. Чтобы в будущем упростить ввод впишем в вышеназванные файлы строчку

EM="sudo emerge -avq"

Теперь команда

EM

будет соответствовать команде

sudo emerge -avq

Если в списке обновляемых пакетов есть хотя бы один из составляющих toolchain (glibc, gcc, binutils, linux-headers), то желательно пересобрать эти пакеты два раза, после чего пересобрать весь мир (world).

emerge -1avq linux-headers glibc binutils gcc-config gcc binutils-config libtool

На самом деле это не обязательно по крайней мере если после обновления тулчейна все ПО работает также стабильно. Делается это в основном потому что glibc и другие пакеты из toolchain используются для сборки всех остальных пакетов и пересборка мира новым тулчейном позволит использовать преимущества имеющиеся в новой версии в масштабе всей системы.

Мантейнеры Gentoo конечно заботятся о пользователях и выпускают собственные патчи для того чтобы все пакеты собирались нормально, но все же иногда (возможно по недосмотру пользователя) отдельные пакеты отказываются собираться без вмешательства юзера, например как здесь.
Для того чтобы продолжить сборку с того же места где она остановилась запускаем

EM -uDN world --resume

Если все же причину мешающую сборки устранить не удалось, то можно пропустить поблемный пакет продолжив без него

EM -uDN world --resume --skipfirst

После удачной сборки не забываем запустить скрипт

revdep-rebuild

который произведет в системе поиск исполняемых файлов со сломанными зависимостями и пересобрав их сделает перелинковку. Заключительным этапом будет запуск

dispatch-conf

который проверит наличие изменений в конфигурационных файлах и найдя их предоставит Вам возможность оставить конфиги как есть, заменить новыми или заменить на новые с ручной правкой.

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

Оцените статью