123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- <?xml version="1.0" encoding="ISO-8859-1"?>
- <!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-intro-how">
- <?dbhtml filename="how.html"?>
- <title>How to Build an LFS System</title>
- <para>The LFS system will be built by using an already installed
- Linux distribution (such as Debian, OpenMandriva, Fedora, or openSUSE). This
- existing Linux system (the host) will be used as a starting point to
- provide necessary programs, including a compiler, linker, and shell,
- to build the new system. Select the <quote>development</quote> option
- during the distribution installation to be able to access these
- tools.</para>
- <para>As an alternative to installing a separate distribution onto your
- machine, you may wish to use <!-- the Linux From Scratch LiveCD or --> a LiveCD from a
- commercial distribution. <!-- The LFS LiveCD works well as a host system,
- providing all the tools you need to successfully follow the instructions in
- this book. The LiveCD version is behind the current book, but is still useful
- as a host for building the current book. The <quote>-nosrc</quote> or
- <quote>-min</quote> editions of the LiveCD are the most appropriate for
- building a current LFS system. For more information about the LFS LiveCD or
- to download a copy, visit <ulink url="&livecd-root;"/>. --></para>
- <!--
- <note>
- <para>The LFS LiveCD might not work on newer hardware configurations,
- failing to boot or failing to detect some devices such as some SATA hard
- drives.</para>
- </note> -->
- <para><xref linkend="chapter-partitioning"/> of this book describes how
- to create a new Linux native partition and file system. This is the place
- where the new LFS system will be compiled and installed. <xref
- linkend="chapter-getting-materials"/> explains which packages and
- patches need to be downloaded to build an LFS system and how to store
- them on the new file system. <xref linkend="chapter-final-preps"/>
- discusses the setup of an appropriate working environment. Please read
- <xref linkend="chapter-final-preps"/> carefully as it explains several
- important issues you need be aware of before beginning to
- work your way through <xref linkend="chapter-temporary-tools"/> and beyond.</para>
- <para><xref linkend="chapter-temporary-tools"/> explains the installation of
- a number of packages that are needed to resolve circular
- dependencies—for example, to compile a compiler, you need a compiler.
- or to unpack the tar package, you need tar.</para>
- <para><xref linkend="chapter-temporary-tools"/> also shows you how to
- build a C cross-compiling toolchain as a first step, including binutils
- and GCC. Cross-compiling is not absolutely needed since the machine we'll
- run LFS on is the same as the one we build on, but it has the advantage
- of clearly separating the already installed system and the future LFS one.
- The next step is to build Glibc, the C library. Glibc will be compiled by
- the toolchain programs built previously. Then, the missing bits for a
- C++ cross-compiling toolchain will be built. It is then possible to build
- packages that are needed to resolve circular dependencies in such a way
- that the produced executables and libraries are completely independent
- from the installed distribution.</para>
- <para>The remainder of <xref linkend="chapter-temporary-tools"/> adds
- the packages necessary to get a complete build environment. This is done
- after running the <command>chroot</command> (change root) program to enter
- a virtual environment and start a new shell whose root directory will be
- set to the LFS partition. This is very similar to rebooting and instructing
- the kernel to mount the LFS partition as the root partition. The system
- does not actually reboot, but instead uses <command>chroot</command>
- because creating a bootable system requires additional work which is not
- ecessary just yet. The major advantage is that <quote>chrooting</quote>
- allows to isolate the build process from the installed distribution, while
- using the installed kernel.</para>
- <para>This effort to isolate the new system from the host distribution may
- seem excessive. A full technical explanation as to why this is done is
- provided in <xref linkend="ch-tools-toolchaintechnotes"/>.</para>
- <para>In <xref linkend="chapter-building-system"/>, The
- full LFS system is built. Another advantage provided by the chroot
- environment is that it allows you to continue using the host system
- while LFS is being built. While waiting for package compilations to
- complete, you can continue using your computer as normal.</para>
- <para>To finish the installation, the basic system configuration is set up in
- <xref linkend="chapter-config"/>, and the kernel and boot loader are set
- up in <xref linkend="chapter-bootable"/>. <xref linkend="chapter-finalizing"/>
- contains information on continuing the LFS experience beyond this book.
- After the steps in this book have been implemented, the computer will be
- ready to reboot into the new LFS system.</para>
- <para>This is the process in a nutshell. Detailed information on each
- step is discussed in the following chapters and package descriptions.
- Items that may seem complicated will be clarified, and everything will
- fall into place as you embark on the LFS adventure.</para>
- </sect1>
|