Руководство по обновлению Gentoo до версии 1.4
1. Перед тем как начать
Подготовка
Как и с любым глобальным обновлением базовой системы, есть вероятность того,
что что-то может пойти не так. И именно потому было бы благоразумно
создать копии всей важной для вас информации, перед тем как приступить
к данному процессу. Если возможно попытайтесь также уделить ему как
можно больше времени, дабы беспрерывно провести полную перекомпиляцию
всего установленного на вашей машине, программного обеспечения.
Другие способы
Это не единственный способ обновления вашей системы. К примеру вы
можете установить новую систему 1.4, на другой раздел диска, после
чего постепенно добавлять туда ваши старые конфигурационные файлы. Это
ещё и хорошо тем, что позволяет в любой момент вернуться к своей
старой системе, что-то вроде аварийного режима. Вы также можете вообще
не обновлять свою систему, но уж если вы решили её обновить, тогда
уж точно прочтите следующее.
Основное примечание
Всякий раз перед выполнением команды emerge было бы хорошо
запустить её же с ключом -p или --pretend дабы знать,
что именно она будет делать.
2. Обновления на месте
Получить насколько это возможно, последний Portage
Иногда синтаксис текущих ebuild скриптов не читаем старой версией
Portage. Попытайтесь обновить portage хотя бы до версии 2.0.44.
Code Listing 2.1 |
# emerge sync
# emerge -u portage
|
Note: Если у вас уж очень старая версия Portage, скорей всего вы
получите сообщение об ошибке "unscriptable object". Прочтите следующие
инструкции в файле /usr/portage/sys-apps/portage/files/README.RESCUE.
Установленная вами версия Portage должна соответствовать текущей. |
Подготовка GCC к обновлению
В процессе данного обновления вы должны будете установить свежую
версию GCC. Версии более ранние чем 2.95.3-r8 не приспособлены для установки
нескольких копий GCC на одном компьютере. Поэтому сначала вы должны
обновить GCC хотя бы до версии 2.95.3-r8. Также будет полезно
установить пакет gcc-config который позволяет переключаться
между различными версиями GCC.
Code Listing 2.2 |
# emerge -u gcc
|
Теперь вы можете выяснить работает ли gcc-config должным образом:
Code Listing 2.3 |
# gcc-config --get-current-profile
|
На большинстве x86 систем это должно вернуть строку
i686-pc-linux-gnu-2.95.3. На более старых системах
строка может быть такой i586-pc-linux-gnu-2.95.3.
Установка GCC 3
Теперь вы можете установить новую версию GCC не повредив текущий
компилятор. В поисках новой версии GCC (по крайней мере не старше
3.2.1-r6) смотрите наличие ebuild скрипта в
/usr/portage/sys-devel/gcc. Выберите последнюю стабильную
(stable) версию для вашей архитектуры, посмотрев строку KEYWORDS в
ebuild файле. При этом если перед названием архитектуры не стоит знак
~, это означает, что версия принята как полностью стабильная. На
данный момент наиболее стабильной является версия 3.2.2, которую и
нужно установить следующей командой:
Code Listing 2.4 |
#emerge /usr/portage/sys-devel/gcc/gcc-3.2.2.ebuild
|
Изменение профилей
Теперь необходимо изменить два профиля: ваш gcc-config профиль и
ваш же Portage профиль.
Code Listing 2.5 |
# cd /etc
# rm make.profile
# ln -s ../usr/portage/profiles/default-x86-1.4 make.profile
|
Code Listing 2.6 |
# gcc-config --list-profiles
# gcc-config i686-pc-linux-gnu-3.2.2
|
Перекомпиляция цепочки необходимых инструментов
Теперь необходимо, новым компилятором, перекомпилировать ряд нужных
компонентов. Если вы находитесь в той же самой рабочей среде,
выполните source /etc/profile как вас проинструктировал
gcc-config. После чего установится glibc и binutils используя ваш новый компилятор:
Code Listing 2.7 |
# emerge glibc binutils
|
Warning: Вероятно, что вы обновляете glibc со старых версий 2.2 до
2.3. Не возвращайтесь впоследствии к старой версии glibc. Любое
программное обеспечение скомпилированое с glibc 2.3, просто может
перестать работать, что приведет вашу систему к полной
непригодности. |
Перекомпиляция, новым компилятором всего программного обеспечения
Теперь можно пересобрать всё установленное программное обеспечение, новым компилятором:
Code Listing 2.8 |
# emerge -e world
|
Note:
Если на данном этапе, команда выдёт ошибку, запустите
emerge --resume чтобы продолжить с места обрыва. Для этого
требуется Portage 2.0.47 и старше.
|
|