Votre système hôte doit contenir les logiciels suivants dans leur version minimum indiquée. Cela ne devrait pas poser de problème sur la plupart des distributions Linux modernes. Noter également que certaines distributions placeront les en-tête des logiciels dans un répertoire distinct des paquets, ayant souvent la forme « <nom-du-paquet>-devel » ou « <nom-du-paquet>-dev ». Assurez-vous qu'ils sont installés si votre distribution les fournit.
Bash-2.05a (/bin/sh devrait être un lien symbolique ou physique vers bash)
Binutils-2.12 (les versions supérieure à 2.19.1 ne sont pas recommandées car elles n'ont pas été testées)
Bison-1.875 (/usr/bin/yacc devrait être un lien vers bison ou un petit script qui exécute bison)
Bzip2-1.0.2
Coreutils-5.0 (ou Sh-Utils-2.0, Textutils-2.0 et Fileutils-4.1)
Diffutils-2.8
Findutils-4.1.20
Gawk-3.0 (/usr/bin/awk devrait être un lien vers gawk)
Gcc-3.0.1 (les versions supérieures à 4.4.1 ne sont pas recommandées car elles n'ont pas été testées)
Glibc-2.2.5 (les versions supérieures à 2.10.1 ne sont pas recommandées car elles n'ont pas été testées)
Grep-2.5
Gzip-1.2.4
Noyau Linux 2.6.18 (compilé avec GCC-3.0 ou supérieur)
Cette version du noyau est requise car nous spécifions cette version-là lors de la construction de glibc au chapitre 6, suivant ainsi une recommandation des développeurs. Vous pouvez éviter cela si vous le désirez mais un noyau au moins 2.6.0 est nécessaire car le support pour le « thread-local storage » de Binutils ne sera pas compilé et la suite de tests NPTL (Native POSIX Threading Library produira une erreur de segmentation (segfault) si le noyau du système hôte n'est pas au moins à la version 2.6.x, compilé avec une version 3.0 ou supérieure de GCC.
Si le noyau hôte est plus ancien que le 2.6.18, ou s'il n'a pas été compilé avec le compilateur GCC-3.0 (ou supérieur), vous devrez remplacer le noyau par un nouveau qui satisfait ces spécifications. Vous pouvez employer deux méthodes pour cela. Vous pouvez d'abord voir si votre distribution Linux fournit un paquet pour le noyau 2.6.18 ou supérieur. Si tel est le cas, vous pouvez l'installer. Si votre distribution n'offre pas un paquet acceptable pour le noyau, ou si vous préférez l'installer, vous pouvez compiler un noyau 2.6 vous-même. Les instructions pour la compilation du noyau et la configuration du chargeur de démarrage (en supposant que le système hôte utilise GRUB) sont au Chapitre 8.
Cette version du livre construit un système Linux 32 bits et nécessite une version 32 bits existante du noyau sur une architecture x86 Intel/AMD. L'ajout de la possibilité de systèmes x86_64 est un objectif majeur d'une prochaine version de LFS. Vous pouvez trouver de l'aide pour des systèmes 64 bits et des architectures supplémentaires dans le projet Cross-Compiled Linux From Scratch (CLFS) sur http://cross-lfs.org/view/svn/.
M4-1.4
Make-3.79.1
Patch-2.5.4
Perl-5.6.0
Sed-3.0.2
Tar-1.14
Texinfo-4.8
Remarquez que les liens symboliques mentionnés ci-dessus sont nécessaires pour construire un système LFS en utilisant les instructions contenues à l'intérieur de ce livre. Il se peut que les liens symboliques qui pointent vers d'autres logiciels (comme dash, mawk, etc), mais ils n'ont pas été testés ou supportés par l'équipe de développement LFS et ils se peut qu'ils impliquent d'autres déviations par rapport aux instructions ou des correctifs supplémentaires pour certains paquets.
Pour voir si votre système hôte a toutes les versions nécessaires, exécutez ceci :
cat > version-check.sh << "EOF"
#!/bin/bash
export LC_ALL=C
# Simple script to list version numbers of critical development tools
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
/lib/libc.so.6 | head -n1 | cut -d" " -f1-7
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
makeinfo --version | head -n1
echo 'main(){}' > dummy.c && gcc -o dummy dummy.c
if [ -x dummy ]; then echo "Compilation OK";
else echo "Compilation failed"; fi
rm -f dummy.c dummy
EOF
bash version-check.sh