В процессе разработки 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 для копирования дерева исходного кода в другое место может привести к уничтожению меток времени в дереве исходного кода и привести к сбою сборки.
Перейдите в каталог, созданный при извлечении пакета.
Следуйте инструкциям по сборке пакета.
Вернитесь в исходный каталог, когда сборка будет завершена.
Удалите извлеченный каталог, если не указано иное.