2.2. 主机系统要求
您的主机系统应具有以下指定最低版本的软件。 对于大多数现代 Linux 发行版来说,这应该不是问题。 另请注意,许多发行版会将软件头文件放入单独的包中,通常采用“ -开发”或“ -开发”。 如果您的发行版提供它们,请务必安装它们。
所列软件包的早期版本可能有效,但尚未经过测试。
• 重击 3.2 (/bin/sh 应该是指向 bash 的符号或硬链接)
• Binutils-2.25 (不建议使用大于 2.32 的版本,因为它们尚未经过测试)
• 野牛-2.7 (/usr/bin/yacc 应该是指向 bison 或执行 bison 的小脚本的链接)
• Bzip2-1.0.4
• Coreutils-6.9
• diffutils-2.8.1
• Findutils-4.2.31
• Gawk-4.0.1 (/usr/bin/awk 应该是 gawk 的链接)
• 海湾合作委员会-6.2 包括 C++ 编译器, 克++ (不建议使用大于 9.2.0 的版本,因为它们尚未经过测试)
• Glibc-2.11 (不建议使用大于 2.30 的版本,因为它们尚未经过测试)
• grep-2.5.1a
• Gzip-1.3.12
• Linux 内核-3.2
内核版本要求的原因是我们在第 6 章中根据开发人员的建议构建 glibc 时指定了该版本。 udev 也需要它。
如果主机内核早于 3.2,您将需要用更新的版本替换内核。 有两种方法可以解决这个问题。 首先,查看您的 Linux 供应商是否提供 3.2 或更高版本的内核包。 如果是这样,您可能希望安装它。 如果您的供应商不提供可接受的内核包,或者您不想
安装它,你可以自己编译一个内核。 编译内核和配置引导加载程序(假设主机使用 GRUB)的说明位于第 8 章。
• M4-1.4.10
• 制造-4.0
• 补丁 2.5.4
• Perl-5.8.8
• Python-3.4
• Sed-4.1.5
• 焦油1.22
• Texinfo-4.7
• XZ-5.0.0
重要
请注意,使用本书中包含的说明构建 LFS 系统需要上述符号链接。 指向其他软件(例如 dash、mawk 等)的符号链接可能有效,但未经 LFS 开发团队测试或支持,并且可能需要偏离说明或对某些软件包附加补丁。
重要
请注意,使用本书中包含的说明构建 LFS 系统需要上述符号链接。 指向其他软件(例如 dash、mawk 等)的符号链接可能有效,但未经 LFS 开发团队测试或支持,并且可能需要偏离说明或对某些软件包附加补丁。
回声 elif [
回声其他
回音
fi
回声 elif [
回声其他
回音
fi
-n "Coreutils: "; chown --version | 头-n1 | 切
-n "Coreutils: "; chown --version | 头-n1 | 切
- 版
- 版
- 版
- 版
- 版
- 版
|
|
|
|
|
|
头
头头
头
头头
-n1
-n1
-n1
-n1
-n1
-n1
"/usr/bin/awk -> `readlink -f /usr/bin/awk`";
-x /usr/bin/awk ]; 然后
awk 是`/usr/bin/awk --version | 头-n1`
"/usr/bin/awk -> `readlink -f /usr/bin/awk`";
-x /usr/bin/awk ]; 然后
awk 是`/usr/bin/awk --version | 头-n1`
“找不到awk”
“找不到awk”
要查看您的主机系统是否具有所有适当的版本以及编译程序的能力,请运行以下命令:
cat > version-check.sh << "EOF"
#!/斌/庆典
# 列出关键开发工具版本号的简单脚本 export LC_ALL=C
bash --version | 头-n1 | cut -d" " -f2-4 MYSH=$(readlink -f /bin/sh)
echo "/bin/sh -> $MYSH"
回声 $MYSH | grep -q bash || 回声“错误:/bin/sh 未指向 bash”未设置 MYSH
echo -n "Binutils: "; ld --version | 头-n1 | cut -d" " -f3- bison --version | 头-n1
如果 [ -h /usr/bin/yacc ]; 然后
cat > version-check.sh << "EOF"
#!/斌/庆典
# 列出关键开发工具版本号的简单脚本 export LC_ALL=C
bash --version | 头-n1 | cut -d" " -f2-4 MYSH=$(readlink -f /bin/sh)
echo "/bin/sh -> $MYSH"
回声 $MYSH | grep -q bash || 回声“错误:/bin/sh 未指向 bash”未设置 MYSH
echo -n "Binutils: "; ld --version | 头-n1 | cut -d" " -f3- bison --version | 头-n1
如果 [ -h /usr/bin/yacc ]; 然后
"/usr/bin/yacc -> `readlink -f /usr/bin/yacc`";
-x /usr/bin/yacc ]; 然后
yacc 是`/usr/bin/yacc --version | 头-n1`
"/usr/bin/yacc -> `readlink -f /usr/bin/yacc`";
-x /usr/bin/yacc ]; 然后
yacc 是`/usr/bin/yacc --version | 头-n1`
“找不到yacc”
bzip2 --version 2>&1 < /dev/null | 头-n1 | cut -d" " echo
差异
找个傻子
-f1,6-
-d")" -f2
“找不到yacc”
bzip2 --version 2>&1 < /dev/null | 头-n1 | cut -d" " echo
差异
找个傻子
如果 [ -h /usr/bin/awk ]; 然后
如果 [ -h /usr/bin/awk ]; 然后
回声 elif [
回声其他
回音
fi
回声 elif [
回声其他
回音
fi
gcc --version | head -n1 g++ --version | 头-n1
ldd --version | 头-n1 | cut -d" " -f2- # glibc 版本 grep --version | 头-n1
gzip --版本 | 头 -n1 猫 /proc/版本
m4 --version | head -n1 make --version | head -n1 补丁 --version | head -n1 echo Perl `perl -V:version` python3 --version
sed --version | head -n1 tar --version | 头-n1
makeinfo --version | head -n1 # texinfo 版本 xz --version | 头-n1
gcc --version | head -n1 g++ --version | 头-n1
ldd --version | 头-n1 | cut -d" " -f2- # glibc 版本 grep --version | 头-n1
gzip --版本 | 头 -n1 猫 /proc/版本
m4 --version | head -n1 make --version | head -n1 补丁 --version | head -n1 echo Perl `perl -V:version` python3 --version
sed --version | head -n1 tar --version | 头-n1
makeinfo --version | head -n1 # texinfo 版本 xz --version | 头-n1
echo 'int main(){}' > dummy.c && g++ -o dummy dummy.c if [ -x dummy ]
然后回显“g++编译OK”;
else echo "g++ 编译失败"; fi rm -f dummy.c dummy
EOF
bash 版本检查.sh
echo 'int main(){}' > dummy.c && g++ -o dummy dummy.c if [ -x dummy ]
然后回显“g++编译OK”;
else echo "g++ 编译失败"; fi rm -f dummy.c dummy
EOF
bash 版本检查.sh