======Часть III. Сборка кросс-компилятора и набора временных инструментов======
=====Важный предварительный материал=====
Содержание
* [[software:linux_server:lfs:partintro#i. Введение|i. Введение]]
* [[software:linux_server:lfs:partintro#ii. Технические примечания по сборочным инструментам|ii. Технические примечания по сборочным инструментам]]
* [[software:linux_server:lfs:partintro#iii. Общие инструкции по компиляции|iii. Общие инструкции по компиляции]]
=====i. Введение=====
Эта часть разделена на три этапа: во-первых, сборка кросс-компилятора и связанных с ним библиотек; во-вторых, использование этого набора инструментов для сборки нескольких утилит таким образом, чтобы изолировать их от основного дистрибутива; в-третьих, вход в среду chroot (что ещё больше улучшает изоляцию от хоста), и сборка оставшихся инструментов, необходимых для создания конечной системы.
**Важно** \\
Именно здесь начинается настоящая работа по сборке новой системы. Требуется очень тщательно следить за тем, чтобы инструкции выполнялись точно так, как они приведены в книге. Вы должны попытаться понять, что они делают, и каким бы ни было ваше желание скорее закончить сборку, вам следует воздержаться от слепого набора команд. Читайте документацию, если вы что-то не понимаете. Кроме того, следите за результатом выполнения команд, отправляя лог в файл с помощью утилиты tee. Это упрощает отладку, если что-то пойдет не так.
Следующий раздел представляет собой техническое введение в процесс сборки, а следующий за ним, содержит **очень важные** общие инструкции по компиляции.
=====ii. Технические примечания по сборочным инструментам=====
В этом разделе объясняются причины и некоторые технические детали, лежащие в основе сборки пакетов. Не обязательно сразу понимать все, что содержится в этом разделе. Большая часть этой информации станет более понятной после выполнения фактической сборки. Возвращайтесь и перечитывайте этот раздел в любое время по ходу сборки.
Основная задача [[software:linux_server:lfs:chapter05|Главы 5]] и [[software:linux_server:lfs:chapter06|Главы 6]] состоит в том, чтобы создать временную область, содержащую заведомо исправный набор инструментов, которые можно изолировать от хост-системы. Использовании команды chroot в последующих главах, обеспечит чистую и безотказную сборку целевой системы LFS. Процесс сборки разработан таким образом, чтобы свести к минимуму риски для новых читателей и в то же время обеспечить наибольшую образовательную ценность.
Сборка инструментария основана на процессе кросс-компиляции. Кросс-компиляция обычно используется для сборки компилятора и его инструментов для машины, отличной от той, которая используется для сборки. Строго говоря, это не требуется для LFS, так как машина, на которой будет работать новая система, та же, что и используемая для сборки. Но у кросс-компиляции есть большое преимущество, заключающееся в том, что все, что подвергается кросс-компиляции, не будет зависеть от окружения хоста.
====О кросс-компиляции====
**Примечание** \\
Книга LFS не является руководством и не содержит общего руководства по созданию кросс (или собственного) тулчейна. Не используйте команды из книги для кросс-тулчейна, который планируете использовать для каких-либо других целей, кроме создания LFS, если у вас нет полного понимания, что вы делаете.
Кросс-компиляция включает в себя некоторые концепции, которые сами по себе заслуживают отдельного раздела. Хотя этот раздел можно пропустить при первом чтении, возвращение к нему позже будет полезно для полного понимания процесса.
Давайте определим некоторые термины, используемые в этом контексте.
===сборщик===
это машина, на которой мы собираем программы. Обратите внимание, что этот компьютер упоминается как «хост» в других разделах.
===хост===
это машина/система, на которой будут выполняться встроенные программы. Обратите внимание, что используемое здесь значение слова «хост» отличается от того, которое применяется в других разделах.
===цель===
используется только для компиляторов. Это машина, для которой компилятор создает код. Он может отличаться как от «сборщика», так и от «хоста».
В качестве примера представим следующий сценарий (иногда называемый «канадским крестом»): у нас есть компилятор на медленной машине, назовем ее машиной A и компилятор ccA. У нас также есть быстрая машина (B), но без компилятора, и мы хотим создать код для другой медленной машины (C). Чтобы собрать компилятор для машины C, у нас будет три этапа:
=====iii. Общие инструкции по компиляции=====