Throughout this book, the environment variable LFS
will be used several times. You should ensure that
this variable is always defined throughout the LFS build process. It
should be set to the name of the directory where you will be building
your LFS system - we will use /mnt/lfs
as an example, but you may choose any directory name you want. If you
are building LFS on a separate partition, this directory will be the
mount point for the partition. Choose a directory location and set
the variable with the following command:
export LFS=/mnt/lfs
Having this variable set is beneficial in that commands such as mkdir -v $LFS/tools can be typed literally. The shell will automatically replace “$LFS” with “/mnt/lfs” (or whatever value the variable was set to) when it processes the command line.
Now set the file mode creation mask (umask) to 022
in case the host distro uses a different
default:
umask 022
Setting the umask to 022 ensures that newly created files and directories are only writable by their owner, but are readable and searchable (only for directories) by anyone (assuming default modes are used by the open(2) system call, new files will end up with permission mode 644 and directories with mode 755). An overly-permissive default can leave security holes in the LFS system, and an overly-restrictive default can cause strange issues building or using the LFS system.
Do not forget to check that LFS
is set
and the umask is set to 022
whenever
you leave and reenter the current working environment (such as when
doing a su to
root
or another user). Check that
the LFS
variable is set up properly
with:
echo $LFS
Make sure the output shows the path to your LFS system's build
location, which is /mnt/lfs
if the
provided example was followed.
Check that the umask is set up properly with:
umask
The output should be 022
.
If any output of these two commands is incorrect, use the command
given earlier on this page to set $LFS
to the correct directory name and set umask to 022
.
One way to ensure that the LFS
variable
and the umask are always set properly is to edit the .bash_profile
file in both your personal home
directory and in /root/.bash_profile
and enter the export
and umask commands
above. In addition, the shell specified in the /etc/passwd
file for all users that need the
LFS
variable must be bash to ensure that
the .bash_profile
file is
incorporated as a part of the login process.
Another consideration is the method that is used to log into the
host system. If logging in through a graphical display manager, the
user's .bash_profile
is not normally
used when a virtual terminal is started. In this case, add the
commands to the .bashrc
file for the
user and root
. In addition, some
distributions use an "if" test, and do not run the remaining
.bashrc
instructions for a
non-interactive bash invocation. Be sure to place the commands
ahead of the test for non-interactive use.