LFS 系统将通过使用预先安装的 Linux 发行版(例如 Debian、Mandrake、Red Hat 或 SuSE)构建。这个现有的 Linux 系统(宿主机)将被用作起点,以提供必要的程序,包括编译器、链接器和 shell,来构建新的系统。在发行版安装期间选择“development”选项,以便能够访问这些工具。
作为在您的机器上安装整个独立发行版的替代方案,您可能希望使用 Linux From Scratch LiveCD。该 CD 可以很好地用作宿主机系统,提供您成功遵循本书中的说明所需的所有工具。此外,它还包含所有源代码包、补丁和本书的副本。因此,一旦您拥有 CD,就不需要网络连接或额外的下载。有关 LFS LiveCD 的更多信息或下载副本,请访问 http://www.linuxfromscratch.org/livecd/。
第 2 章 介绍了如何创建一个新的 Linux 本地分区和文件系统,这是编译和安装新 LFS 系统的地方。 第 3 章 解释了构建 LFS 系统需要下载哪些软件包和补丁,以及如何将它们存储在新文件系统上。 第 4 章 讨论了适当工作环境的设置。请仔细阅读 第 4 章,因为它解释了开发人员在开始学习 第 5 章 及以后章节之前应注意的几个重要问题。
第 5 章 介绍了将构成基本开发套件(或工具链)的许多软件包的安装,该套件用于在 第 6 章 中构建实际系统。其中一些软件包是解决循环依赖关系所必需的——例如,要编译一个编译器,你需要一个编译器。
第 5 章 还向用户展示了如何构建工具链的第一个阶段,包括 Binutils 和 GCC(第一个阶段基本上意味着这两个核心软件包将被重新安装第二次)。下一步是构建 Glibc,C 库。Glibc 将由在第一阶段构建的工具链程序编译。然后,将构建工具链的第二个阶段。这一次,工具链将动态链接到新构建的 Glibc。剩余的 第 5 章 软件包使用此第二阶段工具链构建。完成此操作后,LFS 安装过程将不再依赖于宿主机发行版,除了正在运行的内核。
这种将新系统与宿主机发行版隔离的努力可能看起来有些过度,但完整的技术解释在 第 5.2 节“工具链技术说明” 中提供。
在 第 6 章 中,构建了完整的 LFS 系统。 chroot(更改根目录)程序用于进入虚拟环境并启动一个新的 shell,其根目录将设置为 LFS 分区。这非常类似于重新启动并指示内核将 LFS 分区挂载为根分区。系统实际上并没有重新启动,而是 chroot,因为创建可启动系统需要额外的工作,而这目前尚不必要。主要优点是“chrooting”允许构建者在构建 LFS 时继续使用宿主机。在等待软件包编译完成时,用户可以切换到不同的虚拟控制台 (VC) 或 X 桌面,并继续正常使用计算机。
为了完成安装,LFS-Bootscripts 在 第 7 章 中设置,内核和引导加载程序在 第 8 章 中设置。 第 9 章 包含有关扩展本书之外的 LFS 体验的信息。在本书中的步骤实施之后,计算机将准备好重新启动到新的 LFS 系统中。
这就是过程的概括。有关每个步骤的详细信息将在以下章节和软件包描述中讨论。可能看起来复杂的事项将被澄清,并且随着读者开始 LFS 冒险,一切都将水到渠成。