vii. 宿主系统需求

你的宿主系统应该要有下面列出的软件,而且不应低于所标出的最低版本。这个要求对大多数现代Linux发行版应该都不是问题。也要注意,有许多发行版会把软件的软件头放在一个独立的包里,通常像这样<package-name>-devel或这样<package-name>-dev,如果你的发行版是这样,要确保也安装他们。

下面列出的软件的更早版本可能也能用,但还没有测试过。

要注意上面提到的软连接是用本书中的指令构建LFS系统所要求的。指向其它软件(比如dash,mawk等)的软连接可能也能用,但没被测试过或被LFS开发组所支持,而且那可能会要求指令上的修改或对一些软件的额外的补丁。

要查看你的宿主系统是否全部具有那些软件的合适版本,和编译程序的能力,请运行下面:

cat > version-check.sh << "EOF"
#!/bin/bash
# Simple script to list version numbers of critical development tools

export LC_ALL=C
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
g++ --version | head -n1
ldd --version | head -n1 | cut -d" " -f2-  # glibc version
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
xz --version | head -n1

echo 'main(){}' > dummy.c && g++ -o dummy dummy.c
if [ -x dummy ]
  then echo "g++ compilation OK";
  else echo "g++ compilation failed"; fi
rm -f dummy.c dummy

for lib in lib{gmp,mpfr,mpc}.la; do
  echo $lib: $(if find /usr/lib* -name $lib|
               grep -q $lib;then :;else echo not;fi) found
done
unset lib
EOF

bash version-check.sh