# Пересборка системы

## Rasputin

Hi 2 all!

Вопрос такого плана:

 :Question:   Есть уже собраная система правда без X-ов и его depends-ов. Файл make.conf не правил.

Теперь хочу пересобрать систему, начиная с bootstrap. Естественно поправив make.conf в соответствии со своей системой.

Как мне это правильо выполнить ?

 :Smile:  Спасибо заранее за дельные советы!

----------

## Zoltan

Bootstrap не обязательно перезапускать. Достаточно запустить "emerge -evD world", он должен все перекомпилировать заново. Только долго это...

Это при условии что пересобрать ты все собираешься на том же компе.

Если не на том же, а на каком-то другом, у которого интернета нету, то команда "emerge -efvD world" скачает все исходники всего установленного софта в /usr/portage/distfiles, и тогда их можно будет перенести в другое место и там ставиться.

----------

## Rasputin

Нет.. на этом же... 

Я вот тут пока только интирестные флаги насобирал...

Д аи прочем пару полезностей... хочу проверить тока я упустил сразу поправить make.conf перед bootstrap-ом а теперь хочу исправить ету оплошность. И я еще где то прочел что эта команда обновит и пересоберет все кроме glibc. Так ли это  :Question: 

----------

## Zoltan

Ты всегда можешь посмотреть что конкретно пересоберется "emerge -epvD world | less". Помоему glibc тоже пересобирается. Если нет, то можно ее пересобрать отдельно.

----------

## Rasputin

emerge -u glibc?

или как?

----------

## Zoltan

Просто "emerge -v glibc".

----------

## Bash[DevNull]

Я не знаю теории, но emerge не даст такого же результата как bootstrap. В чем соль не знаю, но bootstrap не просто пересобирает все, он это делает в какой-то хитрой последовательности, так что glibc тот же там вроде аж 2 раза собираеться. Что и Зачем - я не знаю. Но зачем-то наверное нужно  :Wink: 

----------

## Rasputin

 *Bash[DevNull] wrote:*   

> Я не знаю теории, но emerge не даст такого же результата как bootstrap. В чем соль не знаю, но bootstrap не просто пересобирает все, он это делает в какой-то хитрой последовательности, так что glibc тот же там вроде аж 2 раза собираеться. Что и Зачем - я не знаю. Но зачем-то наверное нужно 

 

Вот и я об этом говорю, что glibc в bootstrap-e собирается не так как при emerge,  но как тогда быть... 

Просто выполнить bootstrap and etc?

Разница помоему будет только в том что он не будет тянуть исходники с нета, разве что если там нет обновлений... Да  :Question: 

----------

## Zoltan

При бутстрапе сначала собираются gettext, ncurses, zlib, glibc и gcc тем компилятором, который есть на Live CD (относительно старой версии, и собранным на i486 архитектуру), а потом пересобираются уже новой версией gcc.

Можно руками сделать то же самое. Сначала перекомпилировать все 5 вышеперечисленных пакетов как сделает это "emerge -evDu world", а потом запустить "emerge -v gcc gettext ncurses zlib glibc".

----------

## Bash[DevNull]

Угу, ты прав... Одно меня бесит в бутстрапе - это отсутсвие сохранения состояния. Тарахтит у тебя машина двое суток, а потом раз, а пакета нету и инета нету. А пока подсунешь ей, wget по таймауту выйдет с ошибкой, на что бутстрап ругнеться и прекратит работу :(

Так что предпочтительней все же это делать через emerge ручками.

----------

## Zoltan

 *Bash[DevNull] wrote:*   

> Угу, ты прав... Одно меня бесит в бутстрапе - это отсутсвие сохранения состояния. Тарахтит у тебя машина двое суток, а потом раз, а пакета нету и инета нету. А пока подсунешь ей, wget по таймауту выйдет с ошибкой, на что бутстрап ругнеться и прекратит работу 

 

У скрипта bootstrap.sh есть параметр -f, делает то же самое что и emerge -f, то есть скачивает все необходимое для бутстрапа. А потом уже можно компилироваться без инета.

И на машине где бутстрап работает больше двух дней помоему генту ставить это мазохизм  :Smile: 

----------

## Bash[DevNull]

=)

Мой знакомый на AMD k6-2-300 вроде три дня систему ставил ;)

----------

## Rasputin

Вобщем зделал я 

```
#emerge sync && emerge -evuD world
```

после чего на утро получил:

```

>>> emerge (111 of 124) sys-kernel/gentoo-sources-2.4.22-r5 to /

>>> md5 src_uri ;-) linux-2.4.22.tar.bz2

!!! File is corupted or incomplite. (Digests do not match)

>>> our record digest: c923dc4f2c9add67641fc412c4047

>>> your file's digest:  f31935c220f71a3b053401c074da3

!!! File does not exist: /usr/portage/distfiles/gentoo-sources-2.4.22-r5.patch.bz2
```

Как с этим боротся  :Question: 

И как продолжить пересьборку именно с 111 шага  :Question: 

Спасибо

----------

## Bash[DevNull]

emerge сам продолжит с этого шага

----------

