在本章中,我们将进入构建现场,并开始认真构建 LFS 系统。也就是说,我们将 chroot 进入临时的迷你 Linux 系统,做一些最后的准备工作,然后开始安装软件包。
此软件的安装过程很简单。尽管在许多情况下,安装说明可以更简短和更通用,但我们选择为每个软件包提供完整的说明,以最大限度地减少出错的可能性。了解 Linux 系统工作原理的关键是了解每个软件包的用途以及用户(或系统)为什么需要它。对于每个已安装的软件包,都会提供其内容的摘要,然后是对该软件包安装的每个程序和库的简明描述。
如果使用本章提供的编译器优化,请查看 http://www.linuxfromscratch.org/hints/downloads/files/optimization.txt 上的优化提示。编译器优化可以使程序运行速度稍快,但也可能在运行程序时引起编译困难和问题。如果某个软件包在使用优化时拒绝编译,请尝试在不使用优化的情况下编译它,看看是否能解决问题。即使软件包在使用优化时确实编译成功,也存在由于代码和构建工具之间复杂的相互作用而导致编译不正确的风险。使用编译器优化所获得的小潜在收益通常会被风险所抵消。鼓励 LFS 的首次构建者在不进行自定义优化的情况下进行构建。后续系统仍然会运行非常快速且同时保持稳定。
本章中软件包的安装顺序需要严格遵循,以确保没有程序意外地获取引用到以下路径的路径/tools硬编码到其中。出于同样的原因,不要并行编译软件包。并行编译可能会节省时间(尤其是在双 CPU 机器上),但可能会导致程序包含硬编码到以下位置的路径/tools, 这将导致程序在该目录被移除时停止工作。
在安装说明之前,每个安装页面都提供有关软件包的信息,包括对其包含内容的简明描述、大致需要多长时间构建、此构建过程需要多少磁盘空间以及成功构建该软件包所需的任何其他软件包。在安装说明之后,会列出软件包安装的程序和库(以及对它们的简要描述)。
为了跟踪哪个软件包安装了特定文件,可以使用软件包管理器。有关不同风格软件包管理器的概述,请参阅 http://www.linuxfromscratch.org/blfs/view/svn/introduction/important.html。对于专门针对 LFS 的软件包管理方法,我们推荐 http://www.linuxfromscratch.org/hints/downloads/files/more_control_and_pkg_man.txt。
本书的其余部分需要在以用户 root 身份登录时执行,而不是以用户 lfs 身份登录。另外,请仔细检查$LFS已设置。