|
@@ -8,20 +8,28 @@
|
|
<sect1 id="ch-system-introduction">
|
|
<sect1 id="ch-system-introduction">
|
|
<?dbhtml filename="introduction.html"?>
|
|
<?dbhtml filename="introduction.html"?>
|
|
|
|
|
|
- <title>Introduction</title>
|
|
|
|
|
|
+ <title>概述</title>
|
|
|
|
|
|
- <para>In this chapter, we enter the building site and start constructing the
|
|
|
|
|
|
+ <!--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,
|
|
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>
|
|
|
|
|
|
+ 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
|
|
|
|
|
|
+ <!--para>The installation of this software is straightforward. Although in many
|
|
cases the installation instructions could be made shorter and more generic,
|
|
cases the installation instructions could be made shorter and more generic,
|
|
we have opted to provide the full instructions for every package to minimize
|
|
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
|
|
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)
|
|
work is to know what each package is used for and why you (or the system)
|
|
- may need it.</para>
|
|
|
|
|
|
+ may need it.</para-->
|
|
|
|
+ <para>软件的安装过程是简单直接的。
|
|
|
|
+ 尽管很多时候可以把安装说明写得更短、更通用,
|
|
|
|
+ 我们还是选择为每个包提供完整的安装流程,以尽量减小出错的可能。
|
|
|
|
+ 学习 Linux 系统工作原理的关键就是要知道每个包的作用,
|
|
|
|
+ 以及您(或者系统)为什么需要它。</para>
|
|
|
|
|
|
- <para>We do not recommend using optimizations. They can make
|
|
|
|
|
|
+ <!--para>We do not recommend using optimizations. They can make
|
|
a program run slightly faster, but they may also cause compilation
|
|
a program run slightly faster, but they may also cause compilation
|
|
difficulties and problems when running the program. If a package refuses to
|
|
difficulties and problems when running the program. If a package refuses to
|
|
compile when using optimization, try to compile it without optimization and
|
|
compile when using optimization, try to compile it without optimization and
|
|
@@ -34,49 +42,98 @@
|
|
achieved in using compiler optimizations are often outweighed by the risks.
|
|
achieved in using compiler optimizations are often outweighed by the risks.
|
|
First-time builders of LFS are encouraged to build without custom
|
|
First-time builders of LFS are encouraged to build without custom
|
|
optimizations. The subsequent system will still run very fast and be stable
|
|
optimizations. The subsequent system will still run very fast and be stable
|
|
- at the same time.</para>
|
|
|
|
|
|
+ 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
|
|
|
|
|
|
+ <!--para>The order that packages are installed in this chapter needs to be
|
|
strictly followed to ensure that no program accidentally acquires a path
|
|
strictly followed to ensure that no program accidentally acquires a path
|
|
referring to <filename class="directory">/tools</filename> hard-wired into
|
|
referring to <filename class="directory">/tools</filename> hard-wired into
|
|
it. For the same reason, do not compile separate packages in parallel.
|
|
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
|
|
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
|
|
could result in a program containing a hard-wired path to <filename
|
|
class="directory">/tools</filename>, which will cause the program to stop
|
|
class="directory">/tools</filename>, which will cause the program to stop
|
|
- working when that directory is removed.</para>
|
|
|
|
|
|
+ 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
|
|
|
|
|
|
+ <!--para>Before the installation instructions, each installation page provides
|
|
information about the package, including a concise description of what it
|
|
information about the package, including a concise description of what it
|
|
contains, approximately how long it will take to build, and how much disk
|
|
contains, approximately how long it will take to build, and how much disk
|
|
space is required during this building process. Following the installation
|
|
space is required during this building process. Following the installation
|
|
instructions, there is a list of programs and libraries (along with brief
|
|
instructions, there is a list of programs and libraries (along with brief
|
|
- descriptions of these) that the package installs.</para>
|
|
|
|
|
|
+ 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 6.</para></note>
|
|
|
|
|
|
+ <note>
|
|
|
|
+ <!--para>The SBU values and required disk space includes
|
|
|
|
+ test suite data for all applicable packages in Chapter 6.</para-->
|
|
|
|
+ <para>对于拥有可用的测试套件的软件包,第 6 章中给出的 SBU
|
|
|
|
+ 值和需要的磁盘空间包含了运行测试套件需要的时间和磁盘空间。</para>
|
|
|
|
+ </note>
|
|
|
|
|
|
<sect2>
|
|
<sect2>
|
|
- <title>About libraries</title>
|
|
|
|
|
|
+ <title>关于库</title>
|
|
|
|
|
|
- <para>In general, the LFS editors discourage building and installing static
|
|
|
|
|
|
+ <!--para>In general, the LFS editors discourage building and installing static
|
|
libraries. The original purpose for most static libraries has been made
|
|
libraries. The original purpose for most static libraries has been made
|
|
obsolete in a modern Linux system. In addition linking a static library
|
|
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
|
|
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
|
|
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
|
|
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
|
|
is not always obvious, the relevant programs (and the procedures needed to
|
|
- do the linking) may not even be known.</para>
|
|
|
|
|
|
+ do the linking) may not even be known.</para-->
|
|
|
|
+ <para>一般来说,LFS 作者不推荐构建和安装静态库,它们是为了某些在现代
|
|
|
|
+ Linux 系统中早已过时的原因而存在的。
|
|
|
|
+ 另外,将静态库链接到程序中是有害的,
|
|
|
|
+ 如果需要更新这个库以解决安全问题,
|
|
|
|
+ 所有使用该静态库的程序都要重新链接。程序对静态库的使用并不是显然的,
|
|
|
|
+ 甚至可能搞不清有哪些相关程序需要链接(以及重新链接需要的过程)。
|
|
|
|
+ </para>
|
|
|
|
|
|
- <para>In the procedures in Chapter 6, we remove or disable installation of
|
|
|
|
|
|
+ <!--para>In the procedures in Chapter 6, we remove or disable installation of
|
|
most static libraries. Usually this is done by passing a
|
|
most static libraries. Usually this is done by passing a
|
|
- <option>--disable-static</option> option to <command>configure</command>.
|
|
|
|
|
|
+ <option>disable-static</option> option to <command>configure</command>.
|
|
In other cases, alternate means are needed. In a few cases, especially
|
|
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
|
|
glibc and gcc, the use of static libraries remains essential to the general
|
|
- package building process. </para>
|
|
|
|
|
|
+ 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
|
|
|
|
|
|
+ <!--para>For a more complete discussion of libraries, see the discussion
|
|
<ulink url="&blfs-root;/view/&short-version;/introduction/libraries.html">
|
|
<ulink url="&blfs-root;/view/&short-version;/introduction/libraries.html">
|
|
- Libraries: Static or shared?</ulink> in the BLFS book.</para>
|
|
|
|
|
|
+ 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>
|
|
</sect2>
|
|
|
|
|