3.1. Введение

Эта глава содержит список пакетов, которые необходимо загрузить для сборки базовой системы Linux. Перечисленные версии программного обеспечения, соответствуют версиям, которые, проверены и работают, книга основана на их использовании. Мы настоятельно рекомендуем не использовать другие версии пакетов, потому что команды сборки для одной версии могут не работать с другой, если только другая версия не указана в сообщениях об ошибках LFS или рекомендациях по безопасности. В новейших версиях пакетов также могут быть проблемы, требующие обходных путей. Эти обходные пути будут стабилизированы в разрабатываемой версии книги.

Для некоторых пакетов архив релиза и архив снимка репозитория (Git или SVN) для этого выпуска могут быть опубликованы с одинаковыми именами файлов. Релиз содержит сгенерированные файлы (например, скрипт configure, сгенерированный пакетом autoconf) в дополнение к содержимому соответствующего моментального снимка репозитория. В книге везде, где это возможно, используются релизные архивы. Использование моментального снимка вместо tar-архива, указанного в книге, может вызвать проблемы.

Источники загрузки могут быть недоступны. Если источник изменился с момента публикации этой книги, Google (https://www.google.com/) предоставляет удобную поисковую систему для поиска большинства пакетов. Если поиск не увенчался успехом, попробуйте один из альтернативных способов загрузки, расположенных по адресу https://mirror.linuxfromscratch.ru/lfs/mirrors.html#files.

Загруженные пакеты и патчи необходимо где-нибудь хранить, чтобы они были доступны на протяжении всей сборки. Рабочий каталог также необходим для распаковки исходников и их сборки. $LFS/sources можно использовать и как место для хранения архивов и патчей, и как рабочий каталог. При использовании этого каталога необходимые элементы будут расположены в разделе LFS и будут доступны на всех этапах процесса сборки.

Чтобы создать этот каталог, выполните следующую команду от имени пользователя root перед началом загрузки:

mkdir -v $LFS/sources

Сделайте этот каталог доступным для записи и установите липкий бит. «Липкий бит» означает, что даже если несколько пользователей имеют право на запись в каталог, только владелец файла может удалить файл в таком каталоге. Следующая команда активирует режимы записи и липкий бит:

chmod -v a+wt $LFS/sources

Есть несколько способов получить все необходимые пакеты и патчи для сборки LFS:

Чтобы загрузить все пакеты и патчи, используя wget-list-sysv в качестве входных данных для команды wget, наберите команду:

wget --input-file=wget-list-sysv --continue --directory-prefix=$LFS/sources

Начиная с LFS-7.0, существует отдельный файл md5sums, который можно использовать для проверки всех пакетов. Поместите этот файл в $LFS/sources и выполните:

pushd $LFS/sources
  md5sum -c md5sums
popd

Эту проверку можно использовать после загрузки файлов любым из перечисленных выше способов.

Если пакеты и исправления загружаются от имени пользователя, без привилегий root, то файлы будут принадлежать этому пользователю. Файловая система записывает владельца по его UID, а UID обычного пользователя в хост-дистрибутиве не будет присвоен в LFS. Таким образом, файлы останутся принадлежащими безымянному UID в конечной системе LFS. Если вы не назначили тот же UID для своего пользователя в системе LFS, измените владельца этих файлов на root сейчас, чтобы избежать этой проблемы:

chown root:root $LFS/sources/*