====== iii. Общие инструкции по компиляции ====== :&8: **Внимание**\\ \\ В процессе разработки LFS инструкции в книге часто изменяются, чтобы адаптироваться к обновлению пакета или использовать преимущества новых функций из обновленных пакетов. Смешение инструкций разных версий книги LFS может привести к незначительным поломкам. Такого рода проблемы обычно являются результатом повторного использования некоторых скриптов, созданных для предыдущей версии LFS. Такое повторное использование настоятельно не рекомендуется. Если вы по какой-либо причине повторно используете скрипты из предыдущей версии LFS, вам нужно быть очень осторожным при обновлении скриптов, чтобы они соответствовали текущей версии книги LFS. При сборке пакетов в инструкциях делается несколько допущений: * На некоторые пакеты необходимо наложить патчи перед компиляцией, метод используется тогда, когда исправление необходимо для решения проблем сборки. Патчи часто требуются как в этой, так и в следующих главах, но иногда, когда один и тот же пакет собирается более одного раза, патч требуется не сразу. Поэтому не беспокойтесь, если инструкции для скачанного патча отсутствуют. Предупреждающие сообщения о смещении (offset) или размытии (fuzz) также могут появляться при применении патча. Не обращайте внимания на эти предупреждения, патч все равно успешно применен. * Во время компиляции большинства пакетов на экране будут отображаться предупреждения. Это нормально, и их можно смело игнорировать. Предупреждения появляются, например, когда используется устаревший, недопустимый синтаксис C или C++. Стандарты C меняются довольно часто, и некоторые пакеты все еще используют более старый стандарт. Это не является серьезной проблемой, но вызывает появление предупреждений. * Проверьте в последний раз, что переменная среды LFS настроена правильно: echo $LFS Убедитесь, что в выводе указан путь к точке монтирования раздела LFS, то есть /mnt/lfs, как в примере из этой книги. * Наконец, необходимо подчеркнуть два важных момента: :!: **Важно**\\ \\ Инструкции по сборке предполагают, что все Требования к хост-системе, включая символические ссылки, установлены правильно: * bash это используемая оболочка. * sh это символическая ссылка на bash. * /usr/bin/awk это символическая ссылка на gawk. * /usr/bin/yacc это символическая ссылка на bison или небольшой скрипт, который выполняет bison :!: **Важно**\\ \\ Вот краткое описание процесса сборки: - Поместите все исходники и патчи в каталог, который будет доступен из среды chroot, например, /mnt/lfs/sources/. - Перейдите в каталог /mnt/lfs/sources/. - Для каждого пакета: - С помощью программы tar извлеките пакет для сборки. В Глава 5 и Глава 6 убедитесь, что при извлечении пакета вы залогинены под пользователем lfs. - Не используйте никаких методов, кроме команды tar, для извлечения исходного кода. Примечательно, что использование команды cp -R для копирования дерева исходного кода в другое место может привести к уничтожению ссылок и меток времени в дереве исходного кода и привести к сбою сборки. - Перейдите в каталог, созданный при извлечении пакета. - Следуйте инструкциям по сборке пакета. - Вернитесь в исходный каталог, когда сборка будет завершена. - Удалите извлеченный каталог, если не указано иное. ← [[software:linux_server:lfs:lfs-12.1:partintro:toolchaintechnotes|Технические примечания по сборочным инструментам]] [[software:linux_server:lfs:lfs-12.1:chapter05:chapter05|Сборка кросс-тулчейна]] →