About $LFS

Please read the following carefully: throughout this book the variable LFS will be used frequently. $LFS must at all times be replaced with the directory where the partition that contains the LFS system is mounted. How to create and where to mount the partition will be explained in full detail in Chapter 4. For example, let's assume that the LFS partition is mounted on /mnt/lfs.

When you are told to run a command like ./configure --prefix=$LFS/static you actually have to execute ./configure --prefix=/mnt/lfs/static.

It's important that this is done no matter where it is read; be it in commands entered in a shell, or in a file edited or created.

A possible solution is to set the environment variable LFS. This way $LFS can be entered literally instead of replacing it with /mnt/lfs. This is accomplished by running:

export LFS=/mnt/lfs

Now, if you are told to run a command such as ./configure --prefix=$LFS/static, then you may type it literally. Your shell will replace $LFS with /mnt/lfs when it processes the command line (meaning when you hit enter after having typed the command).

If you plan to use $LFS, do not forget to set the LFS variable at all times. If the variable is not set and is used in a command, $LFS will be ignored and whatever is left will be executed. A command like echo "root:x:0:0:root:/root:/bin/bash" > $LFS/etc/passwd without the LFS variable set will re-create your host system's /etc/passwd file. Simply put: it will destroy your current password database file.

One way to make sure that $LFS is set at all times is adding it to the /root/.bash_profile and /root/.bashrc files so that every time you login as user root, or you su to user root, the LFS variable is set.