[6370fa6] | 1 | <sect1 id="ch05-introduction">
|
---|
| 2 | <title>Introduction</title>
|
---|
[75043c22] | 3 | <?dbhtml filename="introduction.html" dir="chapter05"?>
|
---|
[6370fa6] | 4 |
|
---|
[5756284] | 5 | <para>In this chapter we will compile and install a minimal
|
---|
| 6 | Linux system. This system will contain just enough tools to be able
|
---|
| 7 | to start constructing the final LFS system in the next chapter.</para>
|
---|
| 8 |
|
---|
[66e4325] | 9 | <para>The building of this minimal system is done in two steps: first we
|
---|
| 10 | build a brand-new and host-independent toolchain (compiler, assembler,
|
---|
| 11 | linker and libraries), and then use this to build all the other essential
|
---|
| 12 | tools.</para>
|
---|
| 13 |
|
---|
[5756284] | 14 | <para>The files compiled in this chapter will be installed under the
|
---|
[4e62907] | 15 | <filename class="directory">$LFS/tools</filename> directory
|
---|
[5756284] | 16 | to keep them separate from the files installed in the next chapter.
|
---|
[ef380b4] | 17 | Since the packages compiled here are merely temporary, we don't want
|
---|
| 18 | them to pollute the soon-to-be LFS system.</para>
|
---|
[5756284] | 19 |
|
---|
| 20 | <para>The key to learning what makes a Linux system work is to know
|
---|
[4e62907] | 21 | what each package is used for and why the user or the system needs it.
|
---|
[66e4325] | 22 | For this purpose a short summary of the content of each package is given
|
---|
| 23 | before the actual installation instructions. For a short description of
|
---|
| 24 | each program in a package, please refer to the corresponding section in
|
---|
| 25 | <xref linkend="appendixa"/>.</para>
|
---|
[5756284] | 26 |
|
---|
[5bb6de8] | 27 | <para>The build instructions assume that you are using the bash shell. There
|
---|
| 28 | is also a general expectation that you have already unpacked the sources for a
|
---|
[066907a] | 29 | package and have performed a <userinput>cd</userinput> into the unpacked source
|
---|
[5bb6de8] | 30 | directory before issuing the build commands.</para>
|
---|
| 31 |
|
---|
[3cf0fef] | 32 | <para>Several of the packages are patched before compilation, but only when
|
---|
| 33 | the patch is needed to circumvent a problem. Often the patch is needed in
|
---|
[4e62907] | 34 | both this and the next chapter, but sometimes in only one of them. Therefore,
|
---|
| 35 | don't worry when instructions for a downloaded patch seem to be missing.</para>
|
---|
[5ebcbcc] | 36 |
|
---|
[3cf0fef] | 37 | <para>During the installation of most packages you will
|
---|
[5756284] | 38 | see all kinds of compiler warnings scroll by on your screen. These are
|
---|
| 39 | normal and can be safely ignored. They are just what they say they are:
|
---|
[35c2fa60] | 40 | warnings -- mostly about deprecated, but not invalid, use of the C or C++
|
---|
[5756284] | 41 | syntax. It's just that C standards have changed rather often and some
|
---|
| 42 | packages still use the older standard, which is not really a problem.</para>
|
---|
| 43 |
|
---|
[617bacd] | 44 | <para><emphasis>Unless</emphasis> told not to, you should normally delete the
|
---|
| 45 | source and build directories after installing each package -- for cleanness
|
---|
| 46 | sake and to save space.</para>
|
---|
| 47 |
|
---|
[3cf0fef] | 48 | <para>Before continuing, make sure the LFS environment variable is set up
|
---|
[4e62907] | 49 | properly by executing the following:</para>
|
---|
[b822811] | 50 |
|
---|
[21ba4e3] | 51 | <screen><userinput>echo $LFS</userinput></screen>
|
---|
[b822811] | 52 |
|
---|
[3cf0fef] | 53 | <para>Make sure the output shows the path to your LFS partition's mount
|
---|
| 54 | point, which is <filename class="directory">/mnt/lfs</filename> if you
|
---|
| 55 | followed our example.</para>
|
---|
[607c7370] | 56 |
|
---|
[6370fa6] | 57 | </sect1>
|
---|
| 58 |
|
---|