2.2. 호스트 시스템 요구사항

호스트 시스템에는 버전이 다음보다 크거나 같은 소프트웨어가 있어야 한다. 대부분의 현대 리눅스 배포판에서는 문제가 되지 않는다. 또한 많은 배포판에서 소프트웨어 헤더를 종종 <패키지-이름>-devel<패키지-이름>-dev 형식으로 별도의 패키지에 표시한다. 배포판에서 그렇게 제공하는 경우 반드시 설치한다.

나열된 소프트웨어 패키지 버전의 이전 버전도 작동할 수는 있지만, 테스트되지는 않았다.

[중요]

중요

위에 언급된 심볼링크는 이 책에 포함된 지침을 따라 LFS 시스템을 구축하기 위해 필요하다. dash나 mawk같은 다른 소프트웨어를 가리키는 Symlink도 작동하겠지만 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
MYSH=$(readlink -f /bin/sh)
echo "/bin/sh -> $MYSH"
echo $MYSH | grep -q bash || echo "ERROR: /bin/sh does not point to bash"
unset MYSH

echo -n "Binutils: "; ld --version | head -n1 | cut -d" " -f3-
bison --version | head -n1

if [ -h /usr/bin/yacc ]; then
  echo "/usr/bin/yacc -> `readlink -f /usr/bin/yacc`";
elif [ -x /usr/bin/yacc ]; then
  echo yacc is `/usr/bin/yacc --version | head -n1`
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 [ -h /usr/bin/awk ]; then
  echo "/usr/bin/awk -> `readlink -f /usr/bin/awk`";
elif [ -x /usr/bin/awk ]; then
  echo awk is `/usr/bin/awk --version | head -n1`
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`
python3 --version
sed --version | head -n1
tar --version | head -n1
makeinfo --version | head -n1  # texinfo version
xz --version | head -n1

echo 'int 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
EOF

bash version-check.sh