Данный список содержит имена и минимальные версии пакетов, которые необходимо установить на Вашей хост-системе. Это не должно быть проблемой для последних дистрибутивов Linux. Не забывайте, что многие дистрибутивы помещают заголовочные файлы в отдельные пакеты, часто в виде «<package-name>-devel» или «<package-name>-dev». Вам необходимо установить и их, если Ваш дистрибутив их предоставляет.
Более старые версии перечисленных пакетов могут работать, но корректность их работы не проверялась.
Bash-3.2 (/bin/sh должен быть символической ссылкой на bash)
Binutils-2.17 (Версии новее, чем 2.23.1 не рекомендуются, поскольку они не были протестированы)
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.7.2 не рекомендуются, поскольку они не были протестированы)
Glibc-2.5.1 (Версии новее, чем 2.17 не рекомендуются, поскольку они не были протестированы)
Grep-2.5.1a
Gzip-1.3.12
Linux Kernel-2.6.25 (откомпилированное GCC-4.1.2 или более новым)
Причина, по которой необходимо ограничение на версию ядра кроется в том, что мы указываем эту версию при сборке glibc в Главе 6, как рекомендуется разработчиками. Также это необходимо для udev.
Если ядро хост-системы не 2.6.25, или если оно было собрано не компилятором GCC-4.1.2 (или более поздним), Вам необходимо заменить ядро на соответствующее этим требованиям. Существуют два способа сделать это. Во-первых, проверьте, не предоставляет ли Ваш Linux дистрибутив ядро 2.6.25 или более новое. Если это так, Вам следует установить его. Если же Ваш дистрибутив не предоставляет приемлемое ядро, или Вы не хотите устанавливать его, Вы можете собрать ядро самостоятельно. Инструкции по сборке ядра и конфигирированию загрузчика (предполагая, что хост-система использует GRUB), расположены здесь: Chapter 8.
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
Xz-5.0.0
Заметьте, что символические ссылки, упомянутые выше, необходимы для сборки LFS по инструкциям этой книги. Символические ссылки, указывающие на другие приложения (вроде dash, mawk, и т.д.) могут работать, но не были проверены и не поддерживаются командой разработки LFS, и могут потребовать отклонений от инструкций или дополнительных патчей к некоторым пакетам.
Чтобы проверить, установлено ли на Вашей системе все необходимое и можно ли в ней компилировать программы, запустите следующий скрипт:
cat > version-check.sh << "EOF"
#!/bin/bash
# Simple script to list version numbers of critical development tools
export LC_ALL=C
bash --version | head -n1 | cut -d" " -f2-4
echo "/bin/sh -> `readlink -f /bin/sh`"
echo -n "Binutils: "; ld --version | head -n1 | cut -d" " -f3-
bison --version | head -n1
if [ -e /usr/bin/yacc ];
then echo "/usr/bin/yacc -> `readlink -f /usr/bin/yacc`";
else echo "yacc not found"; fi
bzip2 --version 2>&1 < /dev/null | head -n1 | cut -d" " -f1,6-
echo -n "Coreutils: "; chown --version | head -n1 | cut -d")" -f2
diff --version | head -n1
find --version | head -n1
gawk --version | head -n1
if [ -e /usr/bin/awk ];
then echo "/usr/bin/awk -> `readlink -f /usr/bin/awk`";
else echo "awk not found"; fi
gcc --version | head -n1
ldd --version | head -n1 | cut -d" " -f2- # glibc version
grep --version | head -n1
gzip --version | head -n1
cat /proc/version
m4 --version | head -n1
make --version | head -n1
patch --version | head -n1
echo Perl `perl -V:version`
sed --version | head -n1
tar --version | head -n1
echo "Texinfo: `makeinfo --version | head -n1`"
xz --version | head -n1
echo 'main(){}' > dummy.c && gcc -o dummy dummy.c
if [ -x dummy ]
then echo "gcc compilation OK";
else echo "gcc compilation failed"; fi
rm -f dummy.c dummy
EOF
bash version-check.sh