aboutsummaryrefslogtreecommitdiffstats
path: root/chapter06/introduction.xml
blob: 5e9cfd5c3f6d29764152b3c7c6f0f4895c8e1df6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
  "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [
  <!ENTITY % general-entities SYSTEM "../general.ent">
  %general-entities;
]>

<sect1 id="ch-system-introduction">
  <?dbhtml filename="introduction.html"?>

  <title>Introduction</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>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 the user (or the system)
  needs it.  For every installed package, a summary of its contents is given,
  followed by concise descriptions of each program and library the package
  installed.</para>

  <para>If using the compiler optimizations provided in this chapter, please
  review the optimization hint at <ulink url="&hints-root;optimization.txt"/>.
  Compiler optimizations 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 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>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 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>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, how much disk space
  is required during this building process, and any other packages needed to
  successfully build the package. Following the installation instructions,
  there is a list of programs and libraries (along with brief descriptions of
  these) that the package installs.</para>

  <note>
    <para>At this point, you may wish to keep your finished temporary
    tools for use in future LFS builds by creating a tarball of the
    <filename class="directory">/tools</filename> directory and
    storing it in a safe location.</para>
  </note>

</sect1>