<?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="ch-system-introduction">
  <?dbhtml filename="introduction.html"?>

  <title>概述</title>

  <!--para>In this chapter, we enter the building site and start constructing the
  LFS system in earnest. That is, we chroot into the temporary mini Linux system,
  make a few final preparations, and then begin installing the packages.</para-->
  <para>在本章中，我们将进入构建环境，并真正开始构建 LFS 系统。
	  换句话说，我们 chroot 到前一章构建的临时迷你 Linux 系统中，
	  进行一些最后的准备，然后开始安装各软件包。</para>

  <!--para>The installation of this software is straightforward. Although in many
  cases the installation instructions could be made shorter and more generic,
  we have opted to provide the full instructions for every package to minimize
  the possibilities for mistakes.  The key to learning what makes a Linux system
  work is to know what each package is used for and why you (or the system)
  may need it.</para-->
  <para>软件的安装过程是简单直接的。
	  尽管很多时候可以把安装说明写得更短、更通用，
	  我们还是选择为每个包提供完整的安装流程，以尽量减小出错的可能。
	  学习 Linux 系统工作原理的关键就是要知道每个包的作用，
	  以及您（或者系统）为什么需要它。</para>

  <!--para>We do not recommend using optimizations.  They can make
  a program run slightly faster, but they may also cause compilation
  difficulties and problems when running the program.  If a package refuses to
  compile when using optimization, try to compile it without optimization and
  see if that fixes the problem. Even if the package does compile when using
  optimization, there is the risk it may have been compiled incorrectly because
  of the complex interactions between the code and build tools.  Also note that
  the <option>-march</option> and <option>-mtune</option> options using values
  not specified in the book have not been tested. This may cause problems with
  the toolchain packages (Binutils, GCC and Glibc).  The small potential gains
  achieved in using compiler optimizations are often outweighed by the risks.
  First-time builders of LFS are encouraged to build without custom
  optimizations. The subsequent system will still run very fast and be stable
  at the same time.</para-->
  <para>我们不推荐在编译中使用优化，
  	  编译优化可以使程序跑得稍微快一点，
	  但也可能在编译或运行的过程中带来问题。
	  如果一个软件包在打开优化时无法编译，试着关闭优化再编译它。
	  即使一个软件包在打开优化时可以编译，
	  由于源代码和编译工具的复杂相互作用，仍然存在编译不正确的风险。
	  另外请注意，除本书明确说明外，
	  设定 <option>-march</option> 和 <option>-mtune</option> 是未经验证的，
	  它们可能在工具链软件包（Binutils、GCC 和 Glibc）中引发问题。
	  使用编译优化带来的微小性能增益往往不值得冒编译错误的风险，
	  因此我们建议第一次构建 LFS 的读者不要使用自定义的优化选项。
	  即使不用优化，得到的系统仍然会运行得很快，而且会很稳定。</para>
  <note><title>译注</title>
	  <para>软件包的配置系统会使用 <option>-O2</option> 或
		  <option>-O3</option> 等作为默认的基本优化参数，
		  它们是经软件包作者检验可用的。
		  因此，不使用自定义优化参数也不会编译出非常慢的系统。</para>
  </note>

  <!--para>The order that packages are installed in this chapter needs to be
  strictly followed to ensure that no program accidentally acquires a path
  referring to <filename class="directory">/tools</filename> hard-wired into
  it.  For the same reason, do not compile separate packages in parallel.
  Compiling in parallel may save time (especially on dual-CPU machines), but it
  could result in a program containing a hard-wired path to <filename
  class="directory">/tools</filename>, which will cause the program to stop
  working when that directory is removed.</para-->
  <para>必须严格按照本章给出的顺序安装软件包，
	  才能保证没有程序意外地获得指向
	  <filename class="directory">/tools</filename> 的路径，
	  甚至将这样的路径硬编码到程序中。因此，
	  不要同时构建多个软件包，这可能节约时间（特别是在双 CPU 机器上），
	  但往往会导致某个程序包含一个硬编码的，指向
	  <filename class="directory">/tools</filename> 的路径，
	  结果删除该目录后程序不能工作。</para>

  <!--para>Before the installation instructions, each installation page provides
  information about the package, including a concise description of what it
  contains, approximately how long it will take to build, and how much disk
  space is required during this building process. Following the installation
  instructions, there is a list of programs and libraries (along with brief
  descriptions of these) that the package installs.</para-->
  <para>在安装指令之前，每个页面都提供了软件包的基本信息，
	  包括其内容的简要描述，以及构建过程大概需要的时间和磁盘空间。
	  在安装指令之后，有一个包含该软件包提供的所有程序和库的清单
	  （以及对它们的简要描述）。</para>

  <note>
  	  <!--para>The SBU values and required disk space includes
	  test suite data for all applicable packages in Chapter&nbsp;6.</para-->
      <para>对于拥有可用的测试套件的软件包，第 6 章中给出的 SBU
		  值和需要的磁盘空间包含了运行测试套件需要的时间和磁盘空间。</para>
  </note>

  <sect2>
    <title>关于库</title>

    <!--para>In general, the LFS editors discourage building and installing static
    libraries.  The original purpose for most static libraries has been made
    obsolete in a modern Linux system.  In addition linking a static library
    into a program can be detrimental.  If an update to the library is needed
    to remove a security problem, all programs that use the static library will
    need to be relinked to the new library.  Since the use of static libraries
    is not always obvious, the relevant programs (and the procedures needed to
    do the linking) may not even be known.</para-->
    <para>一般来说，LFS 作者不推荐构建和安装静态库，它们是为了某些在现代
		Linux 系统中早已过时的原因而存在的。
		另外，将静态库链接到程序中是有害的，
		如果需要更新这个库以解决安全问题，
		所有使用该静态库的程序都要重新链接。程序对静态库的使用并不是显然的，
		甚至可能搞不清有哪些相关程序需要链接（或不知道如何重新链接）。
	</para>

    <!--para>In the procedures in Chapter&nbsp;6, we remove or disable installation of
    most static libraries. Usually this is done by passing a
    <option>disable-static</option> option to <command>configure</command>.
    In other cases, alternate means are needed. In a few cases, especially
    glibc and gcc, the use of static libraries remains essential to the general
	package building process. </para-->
	<para>在第 6 章的安装过程中，我们删除或者禁止安装多数静态库。
		一般来说，向 <command>configure</command> 传递
		<option>--disable-static</option> 就可以禁用静态库，
		但某些情况下需要其他手段。在极个别情况下，
		特别是对于 Glibc 和 GCC，
		静态库对于一般的软件包构建过程仍然很关键，就不能禁用静态库。
	</para>

    <!--para>For a more complete discussion of libraries, see the discussion
    <ulink url="&blfs-root;/view/&short-version;/introduction/libraries.html">
    Libraries: Static or shared?</ulink> in the BLFS book.</para-->
	<para>关于库的更详细讨论，可以参阅 BLFS 手册中的
		<ulink url="&blfs-book;/introduction/libraries.html">
			Libraries: Static or shared? </ulink> 一节。</para>

  </sect2>

</sect1>
