许多人想在编译和安装各个软件包之前,了解这一过程大概需要多少时间。由于 Linux From Scratch 可以在许多不同系统上构建,我们无法直接给出估计时间。例如,最大的软件包 (gcc) 在最快的系统上只要大约 5 分钟就能构建好,而在一些较慢的系统上需要若干天!因此,我们不提供实际时间,而是以标准构建单位 (SBU) 衡量时间。
下面给出标准构建单位的测量方法。本书中构建的第一个软件包是第 5 章中的 Binutils,定义使用单个 CPU 核心编译它需要的时间为标准构建单位,缩写为 SBU。其他软件包的编译时间用 SBU 为单位表示。
例如,考虑一个编译时间是 4.5 SBU 的软件包。如果在您的系统上,需要 10 分钟来编译和安装第一轮的 Binutils,那么大概需要 45 分钟才能构建这个软件包。幸运的是,多数软件包构建时间比 Binutils 少。
SBU 不是完全准确的,这是由于它受到许多因素的影响,包括宿主系统的 GCC 版本。SBU 只能用来估计安装一个软件包可能需要的时间,估计结果的误差在个别情况下可能达到几十分钟。
对于许多拥有多个处理器 (或处理器核心) 的现代系统,可以显著缩短软件包的编译时间,设置环境变量或者直接告诉 make 命令有多少个可用的处理器,即可进行并行构建。例如,一块 Intel i5-6500 CPU 可以支持 4 个同时运行的进程,可以设定:
export MAKEFLAGS='-j4'
或者用以下命令构建:
make -j4
如上使用多个处理器时,使用 SBU 估计构建时间会出现更大的误差。某些情况下,还会导致 make 命令失败。另外,分析构建过程的的输出也会变得困难,因为不同进程的输出行会交错在一起。如果在构建过程中出现问题,需要使用单处理器进行构建,才能更好地分析错误消息。
我们给出的 SBU 值根据使用四个 CPU 核心 (-j4) 的计时计算。第 8 章中的时间还会包含运行软件包退化测试的时间,除非另有说明。