mirror of
https://git.linuxfromscratch.org/lfs.git
synced 2025-01-19 13:37:39 +00:00
7f1fcd89bb
git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@3037 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
71 lines
3.9 KiB
XML
71 lines
3.9 KiB
XML
<sect1 id="ch01-how">
|
|
<title>How things are going to be done</title>
|
|
<?dbhtml filename="how.html" dir="chapter01"?>
|
|
|
|
<para>You are going to build your LFS system by using a previously installed
|
|
Linux distribution (such as Debian, Mandrake, Red Hat, or SuSE). This existing
|
|
Linux system (the host) will be used as a starting point, because you will need
|
|
programs like a compiler, linker and shell to build the new system. Normally
|
|
all the required tools are available if you selected <quote>development</quote>
|
|
as one of the options when you installed your distribution.</para>
|
|
|
|
<para>In <xref linkend="chapter03"/> you will first create a new Linux native
|
|
partition and file system, the place where your new LFS system will be compiled
|
|
and installed. Then in <xref linkend="chapter04"/> you download all the
|
|
packages and patches required to build an LFS system, and store them on the new
|
|
file system.</para>
|
|
|
|
<para><xref linkend="chapter05"/> then discusses the installation of a number
|
|
of packages that will form the basic development suite (or toolchain) which is
|
|
used to build the actual system in <xref linkend="chapter06"/>. Some of these
|
|
packages are needed to resolve circular dependencies -- for example, to compile
|
|
a compiler you need a compiler.</para>
|
|
|
|
<para>The first thing to be done in <xref linkend="chapter05"/> is build a
|
|
first pass of the toolchain, made up of Binutils and GCC. The programs from
|
|
these packages will be linked statically in order for them to be usable
|
|
independently of the host system. The second thing to do is build Glibc, the
|
|
C library. Glibc will be compiled by the toolchain programs we just built in
|
|
the first pass. The third thing to do is build a second pass of the toolchain.
|
|
This time the toolchain will be dynamically linked against the newly built
|
|
Glibc. The remaining <xref linkend="chapter05"/> packages are all built using
|
|
this second pass toolchain and dynamically linked against the new
|
|
host-independent Glibc. When this is done, the LFS installation process will no
|
|
longer depend on the host distribution, with the exception of the running
|
|
kernel.</para>
|
|
|
|
<para>You may be thinking that <quote>this seems like a lot of work, just to
|
|
get away from my host distribution</quote>. Well, a full technical explanation
|
|
is provided at the start of <xref linkend="chapter05"/>, including some notes
|
|
on the differences between statically and dynamically linked programs.</para>
|
|
|
|
<para>In <xref linkend="chapter06"/> your real LFS system will be built. The
|
|
chroot (change root) program is used 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 reason that you don't actually reboot, but instead
|
|
chroot, is that creating a bootable system requires additional work which isn't
|
|
necessary just yet. But the major advantage is that chrooting allows you to
|
|
continue using the host while LFS is being built. While waiting for package
|
|
compilation to complete, you can simply switch to a different VC (Virtual
|
|
Console) or X desktop and continue using the computer as you normally
|
|
would.</para>
|
|
|
|
<para>To finish the installation, the bootscripts are set up in
|
|
<xref linkend="chapter07"/>, the kernel and bootloader are set up in
|
|
<xref linkend="chapter08"/>, and <xref linkend="chapter09"/> contains some
|
|
pointers to help you after you finish the book. Then, finally, you're ready to
|
|
reboot your computer into your new LFS system.</para>
|
|
|
|
<para>This is the process in a nutshell. Detailed information on the steps you
|
|
will take are discussed in the chapters and package descriptions as you
|
|
progress through them. If something isn't completely clear now, don't worry,
|
|
everything will fall into place soon.</para>
|
|
|
|
<para>Please read <xref linkend="chapter02"/> carefully as it explains a few
|
|
important things you should be aware of before you begin to work through
|
|
<xref linkend="chapter05"/> and beyond.</para>
|
|
|
|
</sect1>
|
|
|