Gentoo Archives: gentoo-user-ru

From: Mad Deer <mad-deer@××××.ru>
To: gentoo-user-ru@l.g.o
Subject: Re: [gentoo-user-ru] Gentoo Handbook does not contain information about bootstrap?
Date: Mon, 05 Dec 2005 17:43:48
Message-Id: 43947BEE.7060905@mail.ru
In Reply to: Re: [gentoo-user-ru] Gentoo Handbook does not contain information about bootstrap? by Gleb Litvjak
1 Gleb Litvjak пишет:
2
3 > Первый раз gcc 3.4 будет собран c помощью gcc 3.3 и слинкован с glibc,
4 > который собран с gcc 3.3. Второй раз gcc 3.4 будет собран с помощью gcc 3.4,
5 > который был собран с помощью gcc 3.3, и слинкован с glibc, который был собран
6 > с помощью gcc 3.4, собранного с gcc 3.3. Лучше пересобрать и третий раз.
7 если вы не знаете, то gcc сам по себе два раза собирается
8 первый раз он собирает новую версию, а затем снова пересобирает сам себя
9 т.е. 3.3 -> 3.4, 3.4-> 3.4
10 а вообще тут весной статья пробегала http://gentoo.ru/new/node/193
11 так вот совет из неё
12 ------------//------------------------
13 * Обновление одного из пакетов входящих в toolchain.
14 - Если обновляется хотя-бы один из linux-headers, glibc, binutils или gcc,
15 то рекомендуется пересобрать их дважды, после чего весь system, после
16 чего весь world.
17 Цель двойной компиляции toolchain - получить гарантированно стабильный и
18 корректный toolchain не зависящий от предыдущего.
19 Перекомпилировать system/world после этого жёсткой необходимости нет,
20 по крайней мере если остальной софт продолжает работать (возможно даже
21 используя библиотеки из старого toolchain - см. предыдущие пункты об
22 апгрейде).
23 Цель перекомпиляции system/world - чтобы весь софт получил потенциальное
24 преимущество от установки нового toolchain. system перекомпилируется
25 перед world из тех-же соображений, т.к. при компиляции программ из world
26 используются утилиты из system.
27 - Если увеличивается первая или вторая цифра версии gcc, то перед второй
28 сборкой нужно переключиться на новую версию через gcc-config - иначе
29 новый gcc просто установится параллельно со старым в "новый слот" но
30 по умолчанию использоваться будет старый.
31 - При сборке system после двойной перекомпиляции toolchain нет
32 необходимости опять компилировать toolchain как часть system.
33 Аналогично при сборке world после system нет небходимости опять
34 компилировать пакеты из system как часть world. Это можно попробовать
35 обойти либо вручную, либо используя скрипты из
36 http://forums.gentoo.org/viewtopic.php?t=282474 либо через бинарные
37 пакеты и `emerge -k` (я предпочитаю последний вариант).
38 - Итого, рекомендованный набор команд:
39 # для того, чтобы безопасно использовать `emerge -k` нужно очистить
40 # каталог с текущими бинарными пакетами
41 # (напр., переместить его в /tmp/portage-packages)
42 pkgdir=$(portageq pkgdir)
43 mv $pkgdir /tmp/portage-packages
44 install -d -o portage -g portage $pkgdir
45 # первая сборка toolchain
46 emerge linux-headers glibc binutils gcc-config gcc
47 # выбрать новый gcc если он установился в новый слот
48 gcc-config имя_или_номер_нового_gcc # см. `gcc-config -l`
49 source /etc/profile
50 # компиляция toolchain с созданием бинарных пакетов
51 emerge -b glibc binutils gcc portage
52 emerge -bke system # не компилить glibc, binutils и gcc
53 emerge -bke world # не компилить предыдущие пакеты (включая system)
54 ------------//------------------------
55
56 --
57 Да здравствует то, благодаря чему мы, несмотря ни на что.(c) Задорнов
58 Registered Linux User #317544
59 Linux 2.6.14.2 i686 AMD Athlon(tm) XP 2200+
60 --
61 gentoo-user-ru@g.o mailing list