Ihr Host-System sollte über die folgende Software mit den angegebenen Minimalversionen verfügen. Für die meisten modernen Linux-Distributionen sollte dies kein Problem darstellen. Bitte beachten Sie allerdings, dass die meisten Distributionen die Header-Dateien zu Programmen in extra-Pakete packen, meist mit Namen wie „<Paketname>-devel“ oder „<Paketname>-dev“. Bitte stellen Sie sicher, dass Sie auch die Pakete mit den Headern installiert haben.
Bash-2.05a (/bin/sh sollte eine symbolische oder harte Verknüpfung zu bash sein).
Binutils-2.12 (Versionen größer 2.18 werden nicht empfohlen, weil sie nicht getestet wurden)
Bison-1.875 (/usr/bin/yacc sollte eine symbolische oder harte Verknüpfung zu bison sein, oder einem Skript, welches bison ausführt)
Bzip2-1.0.2
Coreutils-5.0 (oder Sh-Utils-2.0, Textutils-2.0 und Fileutils-4.1)
Diffutils-2.8
Findutils-4.1.20
Gawk-3.0 (/usr/bin/awk sollte eine symbolische Verknüpfung zu gawk sein)
Gcc-3.0.1 (Versionen größer 4.3.2 werden nicht empfohlen, weil sie nicht getestet wurden.)
Glibc-2.2.5 (Versionen größer 2.8-20080929 werden nicht empfohlen, weil sie nicht getestet wurden.)
Grep-2.5
Gzip-1.2.4
Linux-Kernel-2.6.x (mit GCC-3.0 oder neuer kompiliert)
Der Grund für diese Kernelanforderung liegt darin, dass die Unterstützung für thread-local storage in Binutils nicht einkompiliert wird und die Native-POSIX-Threading-Bibliothek (NPTL) abstürzt, wenn der Host-Kernel nicht mindestens Version 2.6.x ist und mit GCC 3.0 oder neuer kompiliert wurde.
Wenn der Host-Kernel älter als 2.6.x ist oder er nicht mit mindestens GCC 3.0 (oder neuer) kompiliert wurde, dann muss auf dem Host zuerst ein solcher Kernel installiert und gebootet werden. Es gibt zwei Möglichkeiten, dieses Problem zu beheben: Überprüfen Sie, ob der Hersteller Ihrer Host-Distribution einen entsprechenden Kernel zur Verfügung stellt und installieren Sie diesen. Falls der Hersteller jedoch keinen passenden Kernel mitliefert (oder Sie diesen aus irgendwelchen Gründen nicht installieren möchten), dann können Sie selbst einen 2.6er-Kernel kompilieren. Eine Hilfestellung dazu finden Sie in Kapitel 8 (vorausgesetzt, der Host verwendet GRUB als Bootloader).
Mit dieser Version des Buchs erstellen Sie ein 32-Bit Linux-System; dazu benötigen Sie einen 32-Bit-Kernel auf einer Intel/AMD-x86-Architektur. Die Unterstützung von x86_64-Systemen ist ein Ziel zukünftiger Buch-Versionen. Derzeit finden Sie Unterstützung für 64-Bit-Systeme und weitere Architekturen über das Projekt Cross-Compiled Linux From Scratch (CLFS) unter der Adresse 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
Beachten Sie, dass die oben erwähnten symbolischen Verknüpfungen notwendig sind, um ein LFS nach den Anleitungen in diesem Buch zu erstellen. Symbolische Verknüpfungen auf andere Software (wie z. B. dash, mawk usw.) könnten eventuell funktionieren, wurden aber weder getestet noch werden diese vom LFS-Entwicklerteam unterstützt. Wenn Sie eigene Verknüpfungen verwenden, sind möglicherweise Abweichungen von den Anleitungen in diesem Buch, oder Patche für bestimmte Pakete nötig.
Um herauszufinden, ob Ihr Host-System alle notwendigen Programmversionen installiert hat und in der Lage ist, Programme zu kompilieren, führen Sie den folgenden Befehl aus:
cat > version-check.sh << "EOF"
#!/bin/bash
export LC_ALL=C
# Einfaches Skript zum Auflisten der Versionsnummern kritischer Entwicklungswerkzeuge
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