4.5. 关于 SBU

许多人都想知道编译和安装一个软件包预计需要多长时间。因为 Linux From Scratch 可以在多种不同的系统上创建, 准确估计所需的时间是不可能的。 最快的系统上编译安装最大的软件包(Glibc)大约需要 20 分钟, 但在很慢的系统上可能耗费长达三天时间。 我们不提供准确时间, 代之以标准编译时间单位(SBU)来度量。

SBU 度量具体说明如下,本书中第一个编译的软件包是 Chapter 5 中静态编译的 Binutils 。 编译这个软件包所花费的时间就作为标准编译时间单位或SBU。 所有其它软件的编译时间都用这个时间来衡量。

例如,对于一个编译时间为 4.5 SBU 的软件包,这意味着如果一个系统静态编译安装 Binutils 需要花费 10 分钟,那么编译这个软件包将大约需要 45 分钟。 幸运的是, 大多数软件包编译安装所需的时间都比 Binutils 所需的时间要短。

通常,SBU 并不十分精确,因为它依赖于许多因素,包括宿主系统 GCC 的版本。另外, 在基于对称 多处理器(SMP)的机器上,SBU 更加不准确。我们提供SBU, 仅仅是给出安装一个软件包所需 时间的大概估计, 在某些情况下实际花费的时间与预估计的时间之间可能有数十分钟的差异。

要查看在一些特定机器上的实际编译安装时间,我们推荐您查看 LinuxFromScratch SBU 的主页 http://www.linuxfromscratch.org/~sbu/.

[Note]

注意

对于很多使用多处理器(或核心)的现代系统, 通过设置一个环境变量或告诉 make 程序有几个可用的处理器,以执行”并行编译“可以减少编译一个软件包的时间,比如,一个 Core2Duo 通过下面的设置,可以支持两个并行的处理器:

set MAKEFLAGS='-j 2'

或仅仅在编译时使用下列参数:

make -j2

因此,当使用多处理器时,本书中得 SBU 单位会比通常差别更大。因为不同进程的线路相互交错,所以分析编译过程的输出也更加困难。如果你在编译过程中遇到问题,为了正确分析这些错误信息,就需要恢复到单个处理器来编译。