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. Notez également que certaines distributions placeront les en-têtes des logiciels dans un paquet distinct, 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.
Il se peut que les versions antérieures des paquets logiciels listés fonctionnent, mais elles n'ont pas été testées.
Bash-3.2 (/bin/sh devrait être un lien symbolique ou physique vers bash)
Binutils-2.25 (les versions supérieures à 2.37 ne sont pas recommandées, car elles n'ont pas été testées)
Bison-2.7 (/usr/bin/yacc devrait être un lien vers bison ou un petit script qui exécute bison)
Bzip2-1.0.4
Coreutils-6.9
Diffutils-2.8.1
Findutils-4.2.31
Gawk-4.0.1 (/usr/bin/awk devrait être un lien vers gawk)
GCC-6.2, y compris le compilateur C++ g++ (les versions supérieures à 11.2.0 ne sont pas recommandées, car elles n'ont pas été testées)
Glibc-2.11 (les versions supérieures à 2.34 ne sont pas recommandées car elles n'ont pas été testées)
Grep-2.5.1a
Gzip-1.3.12
Noyau Linux-3.2
Cette version du noyau est requise, car nous spécifions cette version-là lors de la construction de glibc aux Chapitre 5 et Chapitre 8, suivant ainsi une recommandation des développeurs. Elle est aussi exigée par Udev.
Si le noyau hôte est plus ancien que le 3.2, vous devrez remplacer le noyau par une version plus à jour. Vous pouvez employer deux méthodes pour cela. Vous pouvez d'abord voir si votre distribution Linux fournit un paquet pour le noyau 3.2 ou supérieur. Si tel est le cas, vous pouvez l'installer. Si votre distribution n'offre pas de paquet acceptable pour le noyau, ou si vous préférez ne pas l'installer, vous pouvez compiler un noyau vous-même. Les instructions pour la compilation du noyau et la configuration du chargeur d'amorçage (en supposant que le système hôte utilise GRUB) se trouvent au Chapitre 10.
M4-1.4.10
Make-4.0
Patch-2.5.4
Perl-5.8.8
Python-3.4
Sed-4.1.5
Tar-1.22
Texinfo-4.7
Xz-5.0.0
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 pointent vers d'autres logiciels (comme dash, mawk, etc), mais ils n'ont pas été testés, ne sont pas pris en charge par l'équipe de développement LFS et il se peut qu'ils demandent soit des déviations par rapport aux instructions, soit des correctifs supplémentaires de 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
# Script simple pour afficher les numéros de version des outils de développement critiques
export LC_ALL=C
bash --version | head -n1 | cut -d" " -f2-4
MYSH=$(readlink -f /bin/sh)
echo "/bin/sh -> $MYSH"
echo $MYSH | grep -q bash || echo "ERREUR : /bin/sh ne pointe pas vers bash"
unset MYSH
echo -n "Binutils : "; ld --version | head -n1 | cut -d" " -f3-
bison --version | head -n1
if [ -h /usr/bin/yacc ]; then
echo "/usr/bin/yacc -> `readlink -f /usr/bin/yacc`";
elif [ -x /usr/bin/yacc ]; then
echo yacc est `/usr/bin/yacc --version | head -n1`
else
echo "yacc introuvable"
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 [ -h /usr/bin/awk ]; then
echo "/usr/bin/awk -> `readlink -f /usr/bin/awk`";
elif [ -x /usr/bin/awk ]; then
echo awk est `/usr/bin/awk --version | head -n1`
else
echo "awk introuvable"
fi
gcc --version | head -n1
g++ --version | head -n1
ldd --version | head -n1 | cut -d" " -f2- # version de glibc
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`
python3 --version
sed --version | head -n1
tar --version | head -n1
makeinfo --version | head -n1 # version de texinfo
xz --version | head -n1
echo 'int main(){}' > dummy.c && g++ -o dummy dummy.c
if [ -x dummy ]
then echo "g++ compilation OK";
else echo "g++ compilation échouée"; fi
rm -f dummy.c dummy
EOF
bash version-check.sh