Upgrading Gentoo/ru

Данная статья объясняет, как новые выпуски Gentoo влияют на уже существующие системы.

Философия
Здесь, на земле Gentoo, концепция обновление понимается совсем не так, как во всем остальном мире Linux. Это широко известный факт, что Gentoo никогда не следовала «классическому» способу обновления программ: дождаться нового релиза, скачать его, прожечь, засунуть диск в дисковод и, наконец, следовать установочным инструкциям.

Gentoo пользователи знают, что такой процесс раздражает опытного пользователя, стремящегося всегда быть на переднем крае. Учитывая популярность и распространенность инструментов типа apt или apt-rpm, облегчающих быстрые и частые обновления, мы полагаем, что и опытные пользователи других дистрибутивов испытывают те же чувства. Однако ни один дистрибутив не приспособлен для удовлетворения нужд требовательных пользователей лучше Gentoo, поскольку Gentoo с самого начала строился на идее быстрых последовательных обновлений.

В идеале, пользователи устанавливают систему однажды, и более никогда не беспокоятся о выпусках: просто следуйте инструкциям из введение в Portage в настольной книге Gentoo, где описывается, как поддерживать актуальность системы. Хотя обычно такого подхода достаточно, иногда в ядро системы вносятся изменения, требующее установки вручную.

Выпуски и профили
О процессе выпуска версий Gentoo постоянно задают вопрос: «Зачем нужно часто делать новые выпуски, если они не предназначены для обновления программ у пользователей?". Тому есть ряд причин:


 * Новый выпуск — это новые CD с исправлениями и дополненными возможностями.
 * Новый выпуск несет обновленный набор пакетов GRP, так что пользователи, избирающие «быстрый способ» установки (stage3 + заранее скомпилированные пакеты), получают не устаревшую систему.
 * Наконец, в новых выпусках время от времени реализуются функции, несовместимые с предыдущими выпусками.

Когда релиз включает в себя новые функции, несовместимые, или изменяет набор основных пакетов и установок, сильно меняющих поведение системы, мы говорим, что он предоставляет новый profile (профиль).

Профиль представляет собой набор конфигурационных файлов, хранимый в подкаталоге, которые описывают вещи, такие как ebuild для system (системных) пакетов, USE-флаги по умолчанию, отображение по умолчанию для виртуальных пакетов, и архитектуру, на которой работает система.

Используемый профиль определяется символьной ссылкой, указывающей на один из подкаталогов каталога , содержащего файлы профиля. Например, профиль 13.0, являющийся профилем по умолчанию для, находится в каталоге. Файлы, находящиеся в родительском каталоге, также являются частью профиля (и, следовательно, используются различными субпрофилями) — поэтому эти профили называются каскадными (cascaded profiles).

Устаревшие профили хранятся в каталоге вместе с текущими, но они помечены как не рекомендованные к использованию (deprecated). В этом случае файл под названием помещается в каталог профиля. Этот файл содержит название профиля, до которого следует "обновить" текущий профиль; Portage использует эту информацию для автоматического предупреждения администраторов о необходимости обновления профиля.

Существует несколько причин почему новый профиль должен быть создан: выпуск новой версии основных пакетов (таких как, или ), которые не совместимы с предыдущими версиями, изменения в USE-флагах по умолчанию, отображения в виртуальных пакетах или, возможно, изменения в системных настройках.

Релизы без изменения профиля
Если новый релиз Gentoo не содержит новый профиль, то сделайте вид что ничего не произошло. &#128512;

Когда установленные пакеты будут обновлены, как это объяснено в настольной книге Gentoo, система будет точно такой же, как и установленная с помощью нового релиза.

Релизы с изменением профиля
Если релиз (такой как 13.0 в ) вводит новый профиль, в этом случае есть выбор для миграции на новый профиль.

Как правило, такие миграции не являются обязательными, и система может продолжать использовать старый профиль - просто обновите пакеты, как объяснено в настольной книге Gentoo.

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

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

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

Поддерживаемые профили
Чтобы увидеть список поддерживаемых профилей, вызовите (который можно установить с помощью команды ) так:

Обновление старых систем
Некоторые системы являются слишком старыми для простого переключения профиля. Новым профилям могут требоваться более новые версии Portage, также может отсутствовать возможность установки других программ, так как определения пакетов (файлы ebuild) для более старых версий программ более недоступны.

В этом случае, в системе нужно сначала установить более старые снимки дерева Portage и обновить по крайней мере Portage (но, желательно, все пакеты в наборе system), постепенно увеличивая дату снимка дерева Portage, пока она не станет достаточно недавней для того, чтобы снова следовать инструкциям переключения профиля:

Старые снимки зачастую все еще доступны на некоторых зеркал или в определенных местах, выделенных для этой цели. Рекомендуется проверить целостность этих файлов, чтобы убедиться, что они не подделаны:

Даже если ключи подписи релиза истекли, подпись все еще должна работать для старых релизов.

Обновление (очень) старых систем
Некоторые системы слишком стары для простого обновления. В процессе обновления могут потребоваться промежуточные версии программ (таких, как portage), которых больше нет в Portage. В этом случае потребуется обновлять дерево portage поэтапно (например, инкрементально обновлять дерево Portage с интервалами в 3-4 месяца).

Для обновления таких систем может использоваться текущий stage3. Дальнейшие инструкции смотрите в разделе Обновление старых систем.

Основные инструкции
Сначала запустите. Утилита облегчает просмотр и выбор профилей, без необходимости вручную создавать или удалять символьные ссылки.

Изменение профиля вручную все еще возможно с помощью команд:

Обновление до 2008.0, 2007.0 или 2006.1
Для обновления с этих профилей в системе необходимо установить локаль Unicode по умолчанию; конкретнее, необходимо установить  в файле. Для того, чтобы это сработало, в системе необходимо создать локаль Unicode. Чтобы узнать, как создать нужную локаль, читайте статью UTF-8.

В качестве альтернативного варианта, если устанавливать локаль нежелательно, то нужно указать  в файле  и переустановить  (или подождать следующего обновления baselayout) с USE-флагом. Это можно сделать следующим образом:


 * установить  только для :


 * либо установить его глобально для всех пакетов, добавив в переменную USE в файле :

Наконец, следуйте общим инструкциям по обновлению для того, чтобы обновить профиль.

Обновление до 2006.0
Для переключения на профиль 2006.0 измените местоположение, на которое указывает символьная ссылка. Перед изменением профиля убедитесь, что Portage обновлена.

— Пользователям, которые используют ядро 2.4 или не хотят использовать NPTL, следует использовать профиль default-linux/alpha/no-nptl. Более подробную информацию можно найти в the alpha release notes.

— Процесс слияния профилей ppc32 и ppc64 шагнул вперед. Профиль ppc32 теперь предоставляет профиль общего назначения. Он находится в default-linux/ppc/ppc32. Профиль, зависящий от релиза, оптимизирован для использования на настольных системах. Он находится в default-linux/ppc/ppc32/2006.0. Доступен ряд субпрофилей для процессоров G3 и G4, а также G3/Pegasos и G4/Pegasos для Pegasos Open Desktop Workstation. Не забудьте выбрать правильный субпрофиль при миграции на профиль 2006.0.

— Обновление до профиля 2006.0/2.4 на базе ядра 2.4 требует ручного вмешательства (удаления пакетов, связанных с java), а также по причине обновления gcc. Для обновления до профиля 2006.0 на базе ядра 2.6, который считается нестабильным, также необходимо отредактировать файл и размаскировать исходный код ядра  версии 2.6. Также необходимо полностью пересобрать систему.

Прочие архитектуры - Этот профиль не содержит существенных изменений. Дополнительные действия не требуются.

Обновление до 2005.1
Чтобы переключиться на профиль 2005.1, измените местоположение, на которое указывает символьная ссылка. Перед изменением профиля убедитесь, что Portage обновлена.

Все архитектуры — Этот профиль не содержит существенных изменений. Дополнительные действия не требуются.

- With the 2005.1 release, the ppc and ppc64 profiles were merged and a number of subprofiles for specific subarchitectures were created. Make sure to choose the correct subprofile for the system when migrating to a 2005.1 profile.

Updating to 2005.0
With the introduction of 2005.0, several architectures have decided to define additional profiles. Make sure to read the description of said profiles before deciding to migrate to one of them. Most architectures now also default to the 2.6 kernel tree where 2.4 was chosen previously.

Some architectures require a bit more actions to be completed in order to convert from one profile to another. If that is the case, the step-by-step guides are linked from the table.

To switch to the selected profile, point the symlink to the new location. Make sure Portage is updated before changing the profile!

When an upgrade is planned from a Linux 2.4-based system to a 2.6 kernel, make sure to read our Gentoo Linux 2.6 Migration Guide.

Updating to 2004.3
With the introduction of the 2004.3 profiles, users are not going to see huge modifications of their systems (see below for details). However, Gentoo developers decided to push out this new profile and to deprecate quite a few of the old ones to speed up the adoption of stacked profiles, that is, the profiles that follow the new layout of the directory, for instance  (supported by Portage 2.0.51 or later).

To switch to the 2004.3 profile, point the symlink to the new location:

All archs - As said above, there are no big changes introduced in this profile. However, it should be noted that and  are no longer considered system packages. This means that during a, Portage will try to remove them from the system. If any of those packages are needed, add them to after the profile switch, or manually emerge them.

- is now the default instead of  for newly installed machines. This has no effect on already installed machines, though.

Updating Portage to support cascading profiles
Although this section does not seem to integrate well in this upgrading guide, it is quite important. Any profile listed above this section requires a Portage version that supports cascading profiles. However, some obsoleted profiles don't allow the user to upgrade Portage or the user is using a profile that isn't available anymore - any attempt to upgrade Portage will result in a failure.

To work around this problem, users can set a temporary symbolic link to the obsolete profile, allowing them to upgrade their Portage after which they can continue with the upgrade procedure set forth in this guide. Please substitute  with the respective system architecture:

Updating to 2004.2
To switch to the 2004.2 profile, point the symlink to the new location:

- This profile changes the default X11 implementation from (deprecated) to. This change only touches the default value, and is only relevant for those who have not installed an X server yet. If one is already installed, then it will not affect the system at all; users are free to switch from one X server to the other exactly as before.

- There are no fundamental changes from previous profiles, no specific action needs to be performed.

Updating to 2004.0
To switch to the 2004.0 profile, point the symlink to the new location:

All archs - There are no fundamental changes from previous profiles, no specific action needs to be performed.

Updating from profiles older than 1.4 to 1.4
The instructions for this upgrade are quite complex, and can be found here.

Idea of the upgrade
The idea with this upgrade approach is that we create an intermediate build chroot in which a recent stage3 is extracted. Then, using the tools available in the stage3 chroot we upgrade the packages on the live system.

Preparing the intermediate build chroot
Let's first create the intermediate build chroot location, say, and extract a recent stage3 archive into it.

Next, we create a mount point inside this chroot environment, on which we then bind-mount the live (old) environment.

So now the live (old) system is also reachable within. This will allow us to reach the live (old) system and update the packages even when chrooted inside the intermediate build chroot.

Network, chroot, and update
The new install needs to access the network, so copy over the network related information:

Now chroot into the intermediate build location, and start updating vital packages on the live system, until the live system can be updated from within the live system (rather than through the intermediate build chroot):

Now start building packages into the (old) live system. If Portage is old or missing, it is a good idea to start with that:

Keep this chrooted session open and try to update the (old) live system. When failures occur, use this chrooted session to update packages using the build tools available in the intermediate build chroot (which includes recent, , etc.). Tools can be added as needed to the build chroot.

For some installations it may be necessary to update configuration files in order to install new software. Make the changes in the chroot environment.

To get the system fully up-to-date before exiting the root, build the  set (all packages) into the (old) live system:

Once finished the system should now be up to date!