Changeset bdf5881 for chapter01/how.xml
- Timestamp:
- 09/14/2003 03:09:34 AM (21 years ago)
- Branches:
- 10.0, 10.0-rc1, 10.1, 10.1-rc1, 11.0, 11.0-rc1, 11.0-rc2, 11.0-rc3, 11.1, 11.1-rc1, 11.2, 11.2-rc1, 11.3, 11.3-rc1, 12.0, 12.0-rc1, 12.1, 12.1-rc1, 6.0, 6.1, 6.1.1, 6.3, 6.4, 6.5, 6.6, 6.7, 6.8, 7.0, 7.1, 7.2, 7.3, 7.4, 7.5, 7.5-systemd, 7.6, 7.6-systemd, 7.7, 7.7-systemd, 7.8, 7.8-systemd, 7.9, 7.9-systemd, 8.0, 8.1, 8.2, 8.3, 8.4, 9.0, 9.1, arm, bdubbs/gcc13, ml-11.0, multilib, renodr/libudev-from-systemd, s6-init, trunk, v5_0, v5_1, v5_1_1, xry111/arm64, xry111/arm64-12.0, xry111/clfs-ng, xry111/lfs-next, xry111/loongarch, xry111/loongarch-12.0, xry111/loongarch-12.1, xry111/mips64el, xry111/pip3, xry111/rust-wip-20221008, xry111/update-glibc
- Children:
- b0ac1b2
- Parents:
- 27a00d98
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
chapter01/how.xml
r27a00d98 rbdf5881 3 3 <?dbhtml filename="how.html" dir="chapter01"?> 4 4 5 <para>You are going to build the LFS system by using a previously installed6 Linux distribution such as Debian, Mandrake, Red Hat, etc. 7 The existing Linux system will be used as a starting point, because you 8 will need tools like a compiler, linker, text editor, and other development 9 tools to build the system. Ordinarily, the required tools are available by 10 default if you selected "development" as one of your installation options 11 whenyou installed your Linux distribution.</para>5 <para>You are going to build your LFS system by using a previously installed 6 Linux distribution such as Debian, Mandrake, Red Hat, etc. The existing Linux 7 system (host) will be used as a starting point, because you will need programs 8 like a compiler, linker, text editor, and other development tools to build the 9 new system. Ordinarily, the required tools are available by default if you 10 selected <quote>development</quote> as one of your installation options when 11 you installed your Linux distribution.</para> 12 12 13 <para>After you have downloaded the packages that make up an LFS system, 14 you will create a new Linux native partition and filesystem. Here is where 15 the LFS system will be compiled and installed onto.</para> 13 <para>After you have downloaded the packages that make up a LFS system, you 14 will create a new Linux native partition and filesystem. This new Linux 15 partition and filesystem is where your new LFS system will be compiled and 16 installed onto.</para> 16 17 17 <para> The next step, Chapter 5, will discuss the installation of a number18 of packages that will form the basic development suite which is used to 19 build the actual system. Some of these packages are needed to resolve 20 circular dependencies. For example, to compile a compiler you need a 18 <para>Chapter 5 will then discuss the installation of a number of packages that 19 will form the basic development suite (or toolset) which is used to build the 20 actual system in Chapter 6. Some of these packages are needed to resolve 21 circular dependencies. For example, to compile a compiler you need a 21 22 compiler.</para> 22 23 23 <para>The first thing to be done in Chapter 5 is build a first pass of the 24 toolchain, which is made up of Binutils and GCC. The programs from these 25 packages will be linked statically in order for them to be used independently 26 of the host system. The second thing to do is build Glibc, the C library. 27 Glibc will be built with the toolchain programs we just built in the first 24 <para>The first thing to be done in Chapter 5 is build a first pass of the 25 toolchain, which is made up of Binutils and GCC. The programs from these 26 packages will be linked statically in order for them to be used independently 27 of the host system. The second thing to do is build Glibc, the C library. Glibc 28 will be compiled by the toolchain programs we just built in the first 28 29 pass.</para> 29 30 30 <para>The next thing to do is build a second pass of the toolchain. This 31 time the toolchain will be dynamically linked against the newly built Glibc. 32 The remaining Chapter 5 packages are all built using this second pass 33 toolchain and dynamically linked against the new Glibc. When this is done, 34 the LFS installation process will no longer depend on the host distribution, 35 with the exception of the running kernel.</para> 31 <para>The third thing to do is build a second pass of the toolchain. This time 32 the toolchain will be dynamically linked against the newly built Glibc. The 33 remaining Chapter 5 packages are all built using this second pass toolchain and 34 dynamically linked against the new host independant Glibc. When this is done, 35 the LFS installation process will no longer depend on the host distribution, 36 with the exception of the running kernel. This is known as <quote>self 37 contained</quote> and <quote>self hosted</quote>. There is a discussion of the 38 differences between statically and dynamically linked programs at the beginning 39 of Chapter 5.</para> 36 40 37 <para>In Chapter 6 the real LFS system will be built. The 38 chroot (change root) program is used to enter a virtual environment and 39 start a new shell whose root directory will be set to the LFS partition. 40 This is very similar to rebooting and instructing the kernel to mount the 41 LFS partition as the root partition. The reason that you don't actually 42 reboot, but instead chroot, is that creating a bootable system requires 43 additional work which isn't necessary. As well, chrooting allows you 44 to continue using the host while LFS is being built. While software is 45 being installed you can simply switch to a different VC (Virtual Console) 46 or X desktop and continue using the computer as you normally would.</para> 41 <para>You may be asking yourself <quote>that seems like a lot of work, just to 42 get away from my host distribution</quote>. Let us take a few minutes to 43 discuss this question. The work involved in building the packages in Chapter 5 44 is to ensure that as little information from your host makes it into your new 45 pristine LFS system. When you build the first two packages in Chapter 5, 46 Binutils and GCC, they will be compiled statically. This means that the 47 version of the C library on your host distribution will be embedded inside all 48 the binary programs you just compiled. This will cause problems for you down 49 the road (they have been well documented). The host's Glibc is usually an 50 unknown quantity and can contain bugs or anything else we don't know about 51 until it is too late. A well known issue is that statically linked binaries 52 compiled on a Glibc-2.2.x based system that then contain calls to the 53 getpwuid() function crash when run on a glibc-2.3.x based system. You are 54 about to build a Glibc-2.3.x based system. You do not want to build something 55 that is going to crash do you? Finally, the Glibc Autoconf tests produce 56 different results depending on whether an existing Glibc is found on the host 57 distribution. This can lead to inconsistencies and encourages hacks and 58 workarounds. With all these things in mind, you can see that the extra effort 59 to compile Binutils and GCC twice is well worth it.</para> 47 60 48 <para>When all the software from Chapter 6 is installed, the temporary 49 tools built in Chapter 5 will be removed. Chapters 7, 8 and 9 will finalize 50 the installation. The bootscripts are setup in Chapter 7, the kernel and 51 boot loader are setup in Chapter 8 and Chapter 9 has some pointers to help 52 you after you finish with the book. Then, finally, you reboot the system 53 into the new LFS system.</para> 61 <para>In Chapter 6 your real LFS system will be built. The chroot (change root) 62 program is used to enter a virtual environment and start a new shell whose root 63 directory will be set to the LFS partition. This is very similar to rebooting 64 and instructing the kernel to mount the LFS partition as the root partition. 65 The reason that you don't actually reboot, but instead chroot, is that creating 66 a bootable system requires additional work which isn't necessary. As well, 67 chrooting allows you to continue using the host while LFS is being built. 68 While software is being installed you can simply switch to a different VC 69 (Virtual Console) or X desktop and continue using the computer as you normally 70 would.</para> 54 71 55 <para>This is the process in a nutshell. Detailed information on the steps 56 you will take are discussed in the chapters and package descriptions as you 57 progress through them. If something isn't completely clear now, don't 58 worry, everything will fall into place soon.</para> 72 <para>When all the software from Chapter 6 is installed, the temporary tools 73 built in Chapter 5 will be removed. Chapters 7, 8 and 9 will finalize the 74 installation. The bootscripts are setup in Chapter 7, the kernel and boot 75 loader are setup in Chapter 8 and Chapter 9 has some pointers to help you after 76 you finish with the book. Then, finally, you reboot your computer into your 77 new LFS system.</para> 59 78 60 <para>Please read Chapter 2 carefully as it explains a few important things 61 you should be aware of before you begin to work through Chapters 5 and 79 <para>This is the process in a nutshell. Detailed information on the steps you 80 will take are discussed in the chapters and package descriptions as you 81 progress through them. If something isn't completely clear now, don't worry, 82 everything will fall into place soon.</para> 83 84 <para>Please read Chapter 2 carefully as it explains a few important things you 85 should be aware of before you begin to work through Chapters 5 and 62 86 beyond.</para> 63 87
Note:
See TracChangeset
for help on using the changeset viewer.