宿主系统应该遵从下面这些软件的最低版本要求。这对于现在大多数Linux发行版都不是一个问题。需要注意的是很多发行版将软件的头文件分散的不同的包,例如这种形式:“<package-name>-devel” 或 “<package-name>-dev”。请确保你的发行版安装了这些东西。
早期版本的软件也许可以工作,但是没有经过测试。
Bash-3.2 (/bin/sh bash的符号链接或者硬链接)
Binutils-2.17 (不推荐大于2.21的版本,因为没有测试过)
Bison-2.3 (/usr/bin/yacc bison的链接或一个执行bison的小脚步n)
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.6.1的版本,因为没有测试过)
Glibc-2.5.1 (不推荐大于2.14.1的版本,因为没有测试过)
Grep-2.5.1a
Gzip-1.3.12
Linux Kernel-2.6.25 (用GCC 4.1.2或以上版本编译)
内核版本需求是因为第6章构建glibc中开发人员建议我们提到的版本要求。
如果内核版本低于2.6.25或者不是使用GCC4.1.2或以上版本编译,你需要一个符合要求的内核替代。 这里有两种方法。首先,看看你的Linux发行商是否提供2.6.25或更高版本的内核,如果是,你可以安装这个发行版。如果发行商没有提供一个可接收的内核,你可以自己编译一个。第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
Xz-5.0.3
上面提到的符号链接需要用来构建LFS系统。符号链接指向其他软件(如:dash、mawk等)可以工作,但是LFS开发组不提供测试和支持,可能需要一些差异说明,有些包需要附加的补丁。
检测你的系统是否符合版本要求,是否可以编译程序,运行如下代码:
cat > version-check.sh << "EOF"#!/bin/bashexport LC_ALL=C# Simple script to list version numbers of critical development toolsbash --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`"xz --version | head -n1echo 'main(){}' > dummy.c && gcc -o dummy dummy.cif [ -x dummy ]; then echo "Compilation OK"; else echo "Compilation failed"; firm -f dummy.c dummy
EOFbash version-check.sh