1.2.4 iv. 对宿主系统的要求

优质
小牛编辑
126浏览
2023-12-01

你的宿主系统应当安装了下列软件,并且不低于指定的版本号。这些要求对于大部分现在的 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