В этой главе мы скомпилируем и установим минимальную систему Linux. Эта система будет использоваться для построения конечной LFS системы в следующей Главе 6.
Сборка этой минимальной системы будет проходить в два этапа: сначала мы соберем независящие от основной системы средства (компилятор, ассемблер, компоновщик и библиотеки), а потом используем их для сборки других средств.
Файлы, компилируемые в этой главе, устанавливаются в директорию $LFS/tools для отделения их от файлов, устанавливаемых в следующей главе. Эти пакеты просто временные, мы не будем засорять ими нашу конечную LFS систему.
Перед выполнением инструкций по сборке пакета, пакет должен быть распакован пользователем lfs и необходимо перейти в созданную директорию при помощи команды cd. Инструкции по сборке подразумевают, что вы используете интерпритатор командной строки bash.
Некоторые пакеты необходимо пропатчить перед компиляцией, но только когда это необходимо для решения тех или иных проблем. Часто патчи нужно применять в обеих главах (этой и следующей), но некоторые необходимы только в одной из глав. Поэтому не беспокойтесь, если не найдете инструкций по наложению некоторых скачаных патчей в этой главе. Сообщения с предупреждением offset или fuzz могут появляться при накладывании патчей. Это нормально и вы можете не обращать на них внимания. Все что они говорят - внимание, есть неточность, но не ошибка, в коде C или C++. Это из-за того, что меняются стандарты на язык C, а некоторые пакеты написаны в соответствии со старыми стандартами, но это не представляет проблемы для компилятора.
Если не сказано обратное, то вы можете спокойно удалить директории с исходниками и файлами сборки пакетов в целях экономии дискового пространства. Только три пакета нуждаются в сохранении директорий с исходниками и директорий для сборки без изменений для использования в дальнейшем. Об этом будут отдельные предупреждения.
Перед тем как продолжить, убедитесь, что переменная окружения LFS задана корректно выполнением команды:
echo $LFS
Вывод должен указывать на точку монтирования раздела LFS. Мы используем /mnt/lfs в качестве примера.