1.1. 如何构建 LFS 系统
LFS 系统将使用已安装的 Linux 发行版(例如 Debian、OpenMandriva、Fedora 或 openSUSE)构建。 这个现有的 Linux 系统(主机)将用作提供必要程序的起点,包括编译器、链接器和 shell,以构建新系统。 在发行版安装期间选择“开发”选项以能够访问这些工具。
作为在您的机器上安装单独发行版的替代方法,您可能希望使用来自商业发行版的 LiveCD。
本书的第 2 章描述了如何创建一个新的 Linux 本机分区和文件系统。 这是新的 LFS 系统将被编译和安装的地方。 第 3 章解释了构建 LFS 系统需要下载哪些包和补丁,以及如何将它们存储在新的文件系统上。 第 4 章讨论了适当工作环境的设置。 请仔细阅读第 4 章,因为它解释了在开始第 5 章及以后的工作之前您需要注意的几个重要问题。
第 5 章解释了将形成基本开发套件(或工具链)的一些包的安装,用于构建第 6 章中的实际系统。其中一些包是解决循环依赖所必需的——例如,编译一个编译器,你需要一个编译器。
第 5 章还展示了如何构建工具链的第一遍,包括 Binutils 和 GCC(第一遍基本上意味着将重新安装这两个核心包)。 下一步是构建 C 库 Glibc。 Glibc 将由第一次构建的工具链程序编译。 然后,将构建工具链的第二遍。 这一次,工具链将与新构建的 Glibc 动态链接。 其余的第 5 章包是使用第二遍工具链构建的。 完成此操作后,LFS 安装过程将不再依赖于主机分发,除了正在运行的内核。
将新系统与主机分发隔离的这种努力似乎有些过分。 第 5.2 节“工具链技术说明”中提供了有关为什么要这样做的完整技术解释。
在第 6 章中,构建了完整的 LFS 系统。 这 chroot (change root) 程序用于进入虚拟环境并启动一个新的shell,其根目录将设置为LFS分区。 这与重新启动并指示内核将 LFS 分区挂载为根分区非常相似。 系统实际上并没有重新启动,而是使用 chroot 因为创建可引导系统需要额外的工作,而这目前还不是必需的。 主要优点是“chrooting”允许您在构建 LFS 时继续使用主机系统。 在等待包编译完成时,您可以继续照常使用计算机。
为了完成安装,基本系统配置在第 7 章设置,内核和引导加载程序在第 8 章设置。第 9 章包含在本书之外继续 LFS 体验的信息。 执行本书中的步骤后,计算机将准备好重新启动到新的 LFS 系统。
简而言之就是这个过程。 每个步骤的详细信息在以下章节和包描述中讨论。 看似复杂的项目将得到澄清,当您开始 LFS 冒险时,一切都会水到渠成。