%general-entities; ]> Общие инструкции по компиляции В процессе разработки 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 извлеките пакет для сборки. В и убедитесь, что при извлечении пакета вы залогинены под пользователем lfs. Не используйте никаких методов, кроме команды tar, для извлечения исходного кода. Примечательно, что использование команды cp -R для копирования дерева исходного кода в другое место может привести к уничтожению ссылок и меток времени в дереве исходного кода и привести к сбою сборки. Перейдите в каталог, созданный при извлечении пакета. Следуйте инструкциям по сборке пакета. Вернитесь в исходный каталог, когда сборка будет завершена. Удалите извлеченный каталог, если не указано иное.