你的宿主系统应当安装了下列软件,并且不低于指定的版本号。这些要求对于大部分现在的 Linux 发行版来说不成问题。另外要注意的是许多发行版会将软件的头文件额外单独打包存放,常见的名称为"<包名称>-devel"或"<包名称>-dev"。如果你的发行版提供了这些包请务必确保已经安装了它们。
Bash-2.05a
Binutils-2.12 (不推荐使用大于 2.16.1 的版本,因为尚未经过测试)
Bzip2-1.0.2
Coreutils-5.0 (或者 Sh-Utils-2.0, Textutils-2.0, 和 Fileutils-4.1)
Diffutils-2.8
Findutils-4.1.20
Gawk-3.0
Gcc-2.95.3 (不推荐使用大于 4.0.3 的版本,因为尚未经过测试)
Glibc-2.2.5 (不推荐使用大于 2.3.6 的版本,因为尚未经过测试)
Grep-2.5
Gzip-1.2.4
Linux Kernel-2.6.x (必须是 GCC-3.0 以上版本编译的)
对内核版本的这两个要求是因为:如果宿主系统的内核版本低于 2.6.2 或者不是用 GCC-3.0 以上版本编译的,那么 Binutils 将不能支持线程本地存储(thread-local storage),同时 NPTL(本地 POSIX 线程库)的测试程序也会出现段错误。
如果宿主系统的内核版本低于 2.6.2 或者不是用 GCC-3.0 以上版本编译的,您需要安装一个符合上述条件的新内核,然后用该新内核启动宿主系统。有两种方法可以解决这个问题。第一,如果你的 Linux 供应商提供这样的内核,你可以直接安装它;第二,如果你的 Linux 供应商不提供这样的内核或者你不想安装他们提供的内核,你可以自己编译一个内核。关于编译内核和配置引导管理器(假定宿主系统使用 GRUB)的指导,请查看第八章。
Make-3.79.1
Patch-2.5.4
Sed-3.0.2
Tar-1.14
为了确定宿主系统是否满足上述要求,运行下面的命令进行查看:
cat > version-check.sh << "EOF" #!/bin/bash # Simple script to list version numbers of critical development tools bash --version | head -n1 | cut -d" " -f2-4 echo -n "Binutils: "; ld --version | head -n1 | cut -d" " -f3-4 bzip2 --version 2>&1 < /dev/null | head -n1 | cut -d" " -f1,6-8 echo -n "Coreutils: "; chown --version | head -n1 | cut -d")" -f2 diff --version | head -n1 find --version | head -n1 gawk --version | head -n1 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 | head -n1 | cut -d" " -f1-3,5-7 make --version | head -n1 patch --version | head -n1 sed --version | head -n1 tar --version | head -n1 EOF bash version-check.sh