在本章,我们进入建筑工地(building site),开始精心构建 LFS 系统。 也就是说我们通过 chroot 命令进入一个临时的 mini Linux 系统, 并作一些最后的准备, 然后开始安装软件包。
软件的安装非常简单。 尽管许多情况下对安装过程的说明可以更短,更通用, 但为了消除 可能出现的错误,我们为每一个包都提供了全面的安装说明。 学习 Linux 系统是如何工作的, 关键在于明白每个包的用途以及为什么用户(或系统)需要它。
我们不建议进行编译器优化,虽然编译器优化可以使程序运行的稍快一些, 但也会造成编译困难和问题。 如果某个包在使用优化的情况下无法通过编译, 试试不用优化编译能不能解决问题。 即使使用优化编译成功, 由于源码与编译工具之间复杂的相互作用, 程序仍有可能被错误的编译了。 还要注意没有测试未使用本书指定值的 -march
和 -mtune
参数,它们或许会导致一些工具链软件包 (Binutils, GCC, Glibc)的问题。 使用编译器优化得到的小幅度性能提升, 与它带来的风险相比微不足道。 所以初次编译 LFS 的用户最好不要使用任何优化, 同时你的系统也会运行的又快又稳定。
本章中软件包的安装顺序应当严格遵守,以确保没有一个程序会把 /tools
作为路径硬连接到代码中。 由于同样的原因,不要并行编译软件包。并行编译可能会节省时间 (特别是在双CPU的机器上), 但也可能造成程序包含 /tools
硬连接路径, 以致在该目录被删除之后, 程序无法运行。
在每个软件包安装说明页的首部都提供了与该包相关的一些信息, 包括: 包内容的简要说明、 编译大约所需时间、 编译过程所需磁盘空间。 在安装说明之后还有该包所安装的程序和库的列表 (以及对它们的简要说明)。