4.5. 关于SBU

许多用户希望知道编译安装一个软件包最终会花费多少时间。因为 LFS 系统可以构建于多种系统中,所以不可能准确知道所需时间。最大的一个软件包 (Glibc) 在最快的系统中仅仅花费 20 分钟,但在比较慢的系统上要花费 3 天!为了说明大概的时间,我们引入了 SBU 这个概念。

SBU 是这样工作的。在 第 5 章 中第一个安装的包是 Binutils。编译这个包所花费的时间被叫做 SBU。其他程序包的编译时间会根据这个时间来表示。

例如,一个标记为 4.5 SBU 的包意味着,如果一个系统需要 10 分钟编译第一个软件包 Binutils,那么这个软件包需要 45 分钟进行编译。幸运的是,绝大多数程序包进行编译时花费的时间比 Binutils 要少。

通常,SBU 所代表的时间并不是十分精确。它取决于很多因素,包括你的系统中 GCC 的版本。它们仅仅给你一个大概的描述。一些情况下,会有一些误差。

要了解某些具体的机器上的具体时间,可以登录 SBU 主页

[注意]

注意

对于现代的许多多处理器 (或者多核心) 系统,可以使用 并发 make 来减少编译时间。为此,可以通过设置环境变量或者给 make 设置参数来实现。例如,一个 Core2Duo 处理器可以用:

export MAKEFLAGS='-j 2'

或者使用如下进行编译:

make -j2

如果使用这种方式进行编译,编译所用时间的变化幅度会非常大。同时,分析编译流程的输出会变的困难,因为多个处理流程会同时输出。如果你在按照此法进行编译时遇到问题,可以用单处理器模式重新编译,并分析错误信息。