4.5. SBU 値について

各パッケージをコンパイルしインストールするのにどれほどの時間を要するか、誰しも知りたくなるところです。 しかし Linux From Scratch は数多くのシステム上にて構築可能であるため、正確な処理時間を見積ることは困難です。 最も大きなパッケージ (Glibc) の場合、処理性能の高いシステムでも 20 分はかかります。 それが性能の低いシステムとなると 3日はかかるかもしれません! 本書では処理時間を正確に示すのでなく、 標準ビルド単位 (Standard Build Unit; SBU) を用いることにします。

SBU の測定は以下のようにします。 本書で最初にコンパイルするのは 第5章 における Binutils です。 このパッケージのコンパイルに要する時間を標準ビルド時間とし、他のコンパイル時間はその時間からの相対時間として表現します。

例えばあるパッケージのコンパイル時間が 4.5 SBU であったとします。 そして Binutils の1回目のコンパイルが 10分であったとすると、そのパッケージは およそ 45分かかることを意味しています。 幸いにも、たいていのパッケージは Binutils よりもコンパイル時間は短いものです。

一般にコンパイル時間は、例えばホストシステムの GCC のバージョンの違いなど、多くの要因に左右されるため SBU 値は正確なものになりません。 SBU 値は、インストールに要する時間の目安を示すものに過ぎず、場合によっては十数分の誤差が出ることもあります。

特定マシンにおける実際の処理時間については、以下の LinuxFromScratch SBU ホームページに示していますので参照してください。 http://www.linuxfromscratch.org/~sbu/

[注記]

注記

最新のシステムは複数プロセッサ (デュアルコアとも言います) であることが多く、パッケージのビルドにあたっては「同時並行のビルド」によりビルド時間を削減できます。 その場合プロセッサ数がいくつなのかを環境変数に指定するか、あるいは make プログラムの実行時に指定する方法があります。 例えばコア2デュオであれば、以下のようにして同時並行の二つのプロセスを実行することができます。

set MAKEFLAGS='-j 2'

あるいはビルド時の指定として以下のようにすることもできます。

make -j2

上のようにして複数プロセッサが利用されると、 本書に示している SBU 単位は、通常の場合に比べて大きく変化します。 したがってビルド結果を検証するにしても話が複雑になります。 複数のプロセスラインがインターリーブにより多重化されるためです。 ビルド時に何らかの問題が発生したら、 単一プロセッサ処理を行ってエラーメッセージを分析してください。