Chapter 5. Installing basic system software

Table of Contents
How and why things are done
Debugging symbols and compiler optimizations
Preparing the LFS system
Installing Bash
Installing Binutils
Installing Bzip2
Installing Diffutils
Installing Fileutils
Installing GCC on the normal system if necessary
Installing GCC on the LFS system
Installing Linux Kernel
Installing Glibc
Installing Grep
Installing Gzip
Installing Make
Installing Sed
Installing Shellutils
Installing Tar
Installing Textutils
Creating passwd and group files
Copying /proc/devices
Installing basic system software
Entering the chroot'ed environment
Creating device files
Installing GCC
Installing Bison
Installing Mawk
Installing Patch
Installing Findutils
Installing Ncurses
Installing Less
Installing Groff
Installing Man
Installing Perl
Installing M4
Installing Texinfo
Installing Autoconf
Installing Automake
Installing Bash
Installing Flex
Installing File
Installing Libtool
Installing Bin86
Installing Binutils
Installing Bzip2
Installing Gettext
Installing Consoletools
Installing Consoledata
Installing Diffutils
Installing E2fsprogs
Installing Ed
Installing Fileutils
Installing Grep
Installing Gzip
Installing Ldso
Installing Lilo
Installing Make
Installing Modutils
Installing Procinfo
Installing Procps
Installing Psmisc
Installing Sed
Installing Shadowpwd
Installing Shellutils
Installing Vim
Installing Sysklogd
Installing Sysvinit
Installing Tar
Installing Textutils
Installing Utillinux
Installing Man-pages
Removing old NSS library files
Configuring essential software

How and why things are done

In this chapter we will install all the software that belongs to a basic Linux system. After you're done with this chapter you have a fully working Linux system. The remaining chapters deal with setting up networking, creating the boot scripts and adding an entry to lilo.conf so that you can boot your LFS system.

This chapter is devided in two chunks. The first part installs a few necessary programs on the LFS system. These programs are needed to install the rest of the programs that belong to a basic system. When the first part is done, we will enter a chroot'ed environment. This means that we start a shell with $LFS as the root directory (instead of the usual / directory as the root directory). This has the same effect as rebooting the computer into the LFS system, but this way we don't have to reboot. If something goes wrong, you don't need to reboot back in the normal Linux system to fix whatever you need to fix. You just open a new shell on a virtual console, or start a new xterm and you can do what you need to do.

The software in the first part will be linked statically. These programs will be re-installed in the second part and linked dynamically. The reason for the static version first is that there is a chance that our normal Linux system and your LFS system aren't using the same C Library versions. If the programs in the first part are linked against an older C library version, those program might not work well on the LFS system.

The key to learn what makes Linux tick is to know exactly what packages are used for and why you or the system needs them. In depth descriptions of the package are provided in Appendix A.