На вашей хост системе должно быть следующее программное обеспечение с номерами версий, не ниже указанных. Для большинства современных дистрибутивов Linux это не должно быть проблемой. Также отметим, что во многих дистрибутивах заголовочные файлы программ помещаются в отдельные пакеты, имеющие часто вид "<имя-пакета>-devel" или "<имя-пакета>-dev". Не забудьте установить их, если они предлагаются в вашем дистрибутиве.
Более ранние версии перечисленных программ, возможно, будут работать, но они не проверялись.
Bash-3.2 (должна быть символическая или обычная ссылка /bin/sh на bash)
Binutils-2.17 (версии, выше чем 2.21., не рекомендуются, поскольку они не проверялись.)
Bison-2.3 (должна быть символическая или обычная ссылка /usr/bin/yacc на bison, либо нужен небольшой скипт, который выполняет программу bison)
Bzip2-1.0.4
Coreutils-6.9
Diffutils-2.8.1
Findutils-4.2.31
Gawk-3.1.5 (должна быть ссылка /usr/bin/awk на gawk)
Gcc-4.1.2 (версии, выше 4.5.2, не рекомендуются, поскольку они не проверялись.)
Glibc-2.5.1 (версии, выше 2.13, не рекомендуются, поскольку они не проверялись.)
Grep-2.5.1a
Gzip-1.3.12
Linux Kernel-2.6.22.5 (необходимо компилировать компилятором версии GCC-4.1.2 или выше)
Причина такого требования к версии ядра обусловлена тем, что мы используем именно эту версию в главе 6 при сборке glibc в соответствие с рекомендациями разработчиков.
Если версия ядра хост системы либо ниже 2.6.22.5, либо она не компилировалась с помощью компилятора GCC-4.1.2 (или более поздней), вам потребуется заменить ядро другим, которое будет соответствовать спецификациям. Есть два способа сделать это. Во-первых, посмотреть, предоставляет ли поставщик вашей системы Linux пакет ядра версии 2.6.22.5 или более поздней. Если да, то вы можете установить его. Если ваш поставщик не предлагает приемлемого пакета с ядром, или вы предпочитаете его не устанавливать, вы можете скомпилировать ядро самостоятельно. В главе 8 есть инструкции по компиляции ядра и конфигурированию начального загрузчика (при условии, что в хостовой системе используется GRUB).
M4-1.4.10
Make-3.81
Patch-2.5.4
Perl-5.8.8
Sed-4.1.5
Tar-1.18
Texinfo-4.9
Заметим, что символические ссылки, упомянутые выше, необходимы для построения системы LFS с использованием инструкций, содержащихся в этой книге. Символические ссылки, которые указывают на другие программы (например, dash, mawk и т. д.), могут также работать, но они не проверялись и не поддерживаются командой разработчиков LFS. Поэтому может потребоваться либо отходить от инструкции, либо для некоторых пакетов нужны будут дополнительные патчи.
Чтобы убедиться, что на вашей хост системе есть все соответствующие версии, а также можно компилировать программы, выполните следующее:
cat > version-check.sh << "EOF"#!/bin/bashexport LC_ALL=C # Simple script to list version numbers of critical development tools bash --version | head -n1 | cut -d" " -f2-4echo "/bin/sh -> `readlink -f /bin/sh`"echo -n "Binutils: "; ld --version | head -n1 | cut -d" " -f3-bison --version | head -n1if [ -e /usr/bin/yacc ]; then echo "/usr/bin/yacc -> `readlink -f /usr/bin/yacc`"; else echo "yacc not found"; fibzip2 --version 2>&1 < /dev/null | head -n1 | cut -d" " -f1,6-echo -n "Coreutils: "; chown --version | head -n1 | cut -d")" -f2diff --version | head -n1find --version | head -n1gawk --version | head -n1if [ -e /usr/bin/awk ]; then echo "/usr/bin/awk -> `readlink -f /usr/bin/awk`"; else echo "awk not found"; figcc --version | head -n1/lib/libc.so.6 | head -n1 | cut -d"," -f1grep --version | head -n1gzip --version | head -n1cat /proc/versionm4 --version | head -n1make --version | head -n1patch --version | head -n1echo Perl `perl -V:version`sed --version | head -n1tar --version | head -n1echo "Texinfo: `makeinfo --version | head -n1`"echo 'main(){}' > dummy.c && gcc -o dummy dummy.cif [ -x dummy ]; then echo "Compilation OK"; else echo "Compilation failed"; firm -f dummy.c dummy EOF bash version-check.sh