作为一个没有特权的用户安装所有软件包

如果你在第五章用root身份来安装软件,你的主系统中的一些文件有可能被新编译的文件替换。有许多原因会导致这种情况,比如$LFS环境变量没有设置。替换主系统中的文件会引起很多麻烦,所以在第五章中最好用没有特权的用户(普通用户)。为了确保环境是干净的,我们将创建一个新用户"lfs",专门用在第五章的静态编译中。以root运行以下命令:

useradd -s /bin/bash -m lfs &&
passwd lfs

现在我们要改变$LFS/static目录的所有者,这样用户"lfs"才能在这个目录下进行写操作:

chown -R lfs $LFS/static

现在以用户lfs继续本章余下的部份。有两种方法,可以用lfs来登陆或用su - lfs. 当你是lfs用户的身份时,用以下命令来设置一个好的工作环境:

cat > ~lfs/.bash_profile << "EOF"
umask 022

LFS=/mnt/lfs
LC_ALL=POSIX
CC='gcc -s'
export LFS LC_ALL CC
EOF
source ~/.bash_profile

这个profile保证umask设置为022所以新创建的文件和目录会有正确的读写权限。建议你在整个LFS安装过程中保持这个设置。同时还设置了$LFS, $LC_ALL, 和 $CC 环境变量。$LFS已经解释过了。$LC_ALL是国际化用的变量。

当你的主系统glibc版本低于2.2.4时,如果在第五章中把$LC_ALL设置成 "C" 或 "POSIX" 以外的值,当你退出第六章的chroot环境后,要再次进入就会有麻烦。设置成 "POSIX" ("C" 是 "POSIX"的一个别名)我们保证在chroot环境中不会出现任何问题。

我们设置$CC来阻止调试符号编译到静态的包里。忽略这些调试符号,可以节约硬盘空间,并减少编译时间。