5. 构建临时系统

5.1. 简介

本章介绍如何编译和安装一个最小化的 Linux 系统。这个系统将包含足够的工具,以便在第 6 章中开始构建最终的 LFS 系统,并提供比最小化环境更方便的工作环境。

构建这个最小化系统有两个步骤。第一步是构建一个新的、独立于主机的工具链(编译器、汇编器、链接器、库和一些有用的实用程序)。第二步是使用这个工具链来构建其他必要的工具。

本章中编译的文件将安装在$LFS/tools目录中,以使它们与下一章安装的文件和主机生产目录分开。由于这里编译的软件包是临时的,我们不希望它们污染即将到来的 LFS 系统。

[Important]

重要

在为软件包发出构建指令之前,应以用户 lfs 的身份解压软件包,并执行 cd 命令进入创建的目录。构建指令假设正在使用 bash shell。

几个软件包在编译前会被打补丁,但仅当需要补丁来规避问题时才打补丁。通常在本章和下一章都需要补丁,但有时只需要其中一章。因此,如果下载的补丁的指令似乎丢失了,请不要担心。应用补丁时,也可能会遇到关于 offsetfuzz 的警告消息。不要担心这些警告,因为补丁仍然成功应用了。

在编译大多数软件包期间,屏幕上会出现一些滚动的警告。这些是正常的,可以安全地忽略。这些警告正如它们所显示的那样——关于已弃用但并非无效的 C 或 C++ 语法使用的警告。C 标准变化相当频繁,一些软件包仍然使用较旧的标准。这不是问题,但会提示警告。

[Important]

重要

安装完每个软件包后,删除其源代码和构建目录,除非另有明确指示。删除源代码可以防止以后重新安装同一软件包时发生错误配置。只有三个软件包需要保留源代码和构建目录,以便以后的命令可以使用其内容。请特别注意这些提示。

最后一次检查LFS环境变量是否设置正确

echo $LFS

确保输出显示 LFS 分区挂载点的路径,即/mnt/lfs,使用我们的示例。