aboutsummaryrefslogtreecommitdiffstats
path: root/chapter05/introduction.xml
blob: fd1a3692e8597e021ba749b9509dc744968a29da (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
66
67
68
69
70
<?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-tools-introduction">
  <?dbhtml filename="introduction.html"?>

  <title>Introduction</title>

  <para>This chapter shows how to compile and install a minimal Linux system.
  This system will contain just enough tools to start constructing the final
  LFS system in <xref linkend="chapter-building-system"/> and allow a working
  environment with more user convenience than a minimum environment would.</para>

  <para>There are two steps in building this minimal system. The first step
  is to build a new and host-independent toolchain (compiler, assembler,
  linker, libraries, and a few useful utilities).  The second step uses this
  toolchain to build the other essential tools.</para>

  <para>The files compiled in this chapter will be installed under the
  <filename class="directory">$LFS/tools</filename> directory to keep them
  separate from the files installed in the next chapter and the host
  production directories. Since the packages compiled here are temporary,
  we do not want them to pollute the soon-to-be LFS system.</para>

  <important>
    <para>Before issuing the build instructions for a package, the package
    should be unpacked as user <systemitem class="username">lfs</systemitem>,
    and a <command>cd</command> into the created directory should be performed.
    The build instructions assume that the <command>bash</command> shell is
    in use.</para>
  </important>

  <para>Several of the packages are patched before compilation, but only when
  the patch is needed to circumvent a problem. A patch is often needed in both
  this and the next chapter, but sometimes in only one or the other. Therefore,
  do not be concerned if instructions for a downloaded patch seem to be missing.
  Warning messages about <emphasis>offset</emphasis> or <emphasis>fuzz</emphasis>
  may also be encountered when applying a patch. Do not worry about these
  warnings, as the patch was still successfully applied.</para>

  <para>During the compilation of most packages, there will be several warnings
  that scroll by on the screen. These are normal and can safely be ignored.
  These warnings are as they appear&mdash;warnings about deprecated, but not
  invalid, use of the C or C++ syntax. C standards change fairly often, and
  some packages still use the older standard. This is not a problem, but does
  prompt the warning.</para>

  <important>
    <para>After installing each package, delete its source and build directories,
    unless specifically instructed otherwise. Deleting the sources prevents
    mis-configuration when the same package is reinstalled later. Only three
    of the packages need to retain the source and build directories in order
    for their contents to be used by later commands. Pay special attention to
    these reminders.</para>
  </important>

  <para>Check one last time that the <envar>LFS</envar> environment
  variable is set up properly:</para>

<screen role="nodump"><userinput>echo $LFS</userinput></screen>

  <para>Make sure the output shows the path to the LFS partition's mount
  point, which is <filename class="directory">/mnt/lfs</filename>, using
  our example.</para>

</sect1>