123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
- "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
- <!ENTITY % general-entities SYSTEM "../general.ent">
- %general-entities;
- ]>
- <sect1 id="prepare-aboutsbus">
- <?dbhtml filename="aboutsbus.html"?>
- <title>关于 SBU</title>
- <!--para>Many people would like to know beforehand approximately how long
- it takes to compile and install each package. Because Linux From
- Scratch can be built on many different systems, it is impossible to
- provide accurate time estimates. The biggest package (Glibc) will
- take approximately 20 minutes on the fastest systems, but could take
- up to three days on slower systems! Instead of providing actual times,
- the Standard Build Unit (SBU) measure will be
- used instead.</para-->
- <para>许多人想在编译和安装各个软件包之前,了解这一过程大概需要多少时间。
- 由于 Linux From Scratch 可以在许多不同系统上构建,
- 我们无法直接给出估计时间。例如,最大的软件包 (Glibc)
- 在最快的系统上只要大约 20 分钟就能构建好,
- 而在一些较慢的系统上需要 3 天!因此,我们不提供实际时间,
- 而是以标准构建单位 (SBU) 衡量时间。</para>
- <!--para>The SBU measure works as follows. The first package to be compiled
- from this book is Binutils in <xref linkend="chapter-temporary-tools"/>. The
- time it takes to compile this package is what will be referred to as the
- Standard Build Unit or SBU. All other compile times will be expressed relative
- to this time.</para-->
- <para>标准构建单位的定义如下:本书中构建的第一个软件包是
- <xref linkend="chapter-temporary-tools"/> 中的 Binutils ,
- 定义编译它需要的时间为标准构建单位,缩写为 SBU 。
- 其他软件包的编译时间用 SBU 为单位表示。</para>
- <!--para>For example, consider a package whose compilation time is 4.5
- SBUs. This means that if a system took 10 minutes to compile and
- install the first pass of Binutils, it will take
- <emphasis>approximately</emphasis> 45 minutes to build this example package.
- Fortunately, most build times are shorter than the one for Binutils.</para>
- <para>In general, SBUs are not entirely accurate because they depend on many
- factors, including the host system's version of GCC. They are provided here
- to give an estimate of how long it might take to install a package, but the
- numbers can vary by as much as dozens of minutes in some cases.</para-->
- <para>例如,考虑一个编译时间是 4.5 SBU 的软件包。如果在某个系统上,
- 需要 10 分钟来编译和安装第一轮的 Binutils ,
- 那么<emphasis>大概</emphasis>需要 45 分钟才能编译这个软件包。
- 幸运的是,多数软件包构建时间比 Binutils 少。</para>
- <para>一般来说,SBU 不是完全准确的。这是由于它受到许多因素的影响,
- 包括宿主系统的 GCC 版本。
- SBU 只能用来估计安装一个软件包可能需要的时间,
- 估计结果的误差在个别情况下可能达到几十分钟。</para>
- <note>
- <!--para>For many modern systems with multiple processors (or cores) the
- compilation time for a package can be reduced by performing a "parallel
- make" by either setting an environment variable or telling the
- <command>make</command> program how many processors are available. For
- instance, a Core2Duo can support two simultaneous processes with:</para-->
- <para>对于许多拥有多个处理器(或处理器核心)的现代系统,
- 可以进行并行构建,从而显著缩短软件包的编译时间。
- 设置环境变量,或者直接告诉 <command>make</command>
- 命令有多少个可用的处理器,都可以进行并行编译。例如,
- 在一个 Core2Duo 系统中,可以设置下列环境变量,
- 以支持用两个并行的进程进行编译:</para>
- <screen role="nodump"><userinput>export MAKEFLAGS='-j 2'</userinput></screen>
- <!--para>or just building with:</para-->
- <para>或者直接用以下命令构建:</para>
- <screen role="nodump"><userinput>make -j2</userinput></screen>
- <!--para>When multiple processors are used in this way, the SBU units in the
- book will vary even more than they normally would. In some cases, the make
- step will simply fail. Analyzing the output of the build process will also
- be more difficult because the lines of different processes will be
- interleaved. If you run into a problem with a build step, revert back to a
- single processor build to properly analyze the error messages.</para-->
- <para>用这种方式使用多个处理器时,SBU 值将会发生变化,
- 有时甚至变得比正常值还大。某些情况下,还会导致
- <command>make</command> 命令失败。
- 另外,分析构建过程的的输出也会变得困难,
- 因为不同进程的输出行会交错在一起。如果在构建过程中出现问题,
- 需要使用单处理器进行构建,才能更好地分析错误消息。</para>
- </note>
- </sect1>
|