6.5. 创建系统目录结构

现在,我们在LFS文件系统里创建一些目录结构。通过执行下面的命令,来创建标准的目录树:

mkdir -pv /{bin,boot,etc/opt,home,lib,mnt,opt}
mkdir -pv /{media/{floppy,cdrom},sbin,srv,var}
install -dv -m 0750 /root
install -dv -m 1777 /tmp /var/tmp
mkdir -pv /usr/{,local/}{bin,include,lib,sbin,src}
mkdir -pv /usr/{,local/}share/{doc,info,locale,man}
mkdir -v  /usr/{,local/}share/{misc,terminfo,zoneinfo}
mkdir -pv /usr/{,local/}share/man/man{1..8}
for dir in /usr /usr/local; do
  ln -sv share/{man,doc,info} $dir
done
case $(uname -m) in
 x86_64) ln -sv lib /lib64 && ln -sv lib /usr/lib64 ;;
esac
mkdir -v /var/{lock,log,mail,run,spool}
mkdir -pv /var/{opt,cache,lib/{misc,locate},local}

缺省的创建目录的权限模式为 755, 但也并非所有的目录都如此。 以上的命令有两处有所不同: 一个是 root 用户的主目录,另外两个是临时文件目录。

第一个权限模式的改变是确保其他人不能进入到 /root 目录中——同样的, 这个模式也适用于让其它的普通用户可以工作在自己的目录中。第二个权限模式的改变, 确保任何用户都可以写 /tmp/var/tmp 目录, 但不能从中删除其它用户的文件, 这是由"sticky位", 也就是"1777"中的最高位"1"来设定的。

6.5.1. FHS兼容性说明

我们的目录树是按照文件系统层次标准 (FHS) (请参考 http://www.pathname.com/fhs/)。 除了 FHS外,我们还为 man, doc, 和 info目录建立了兼容性的符号链接, 因为很多软件包还会试图将它们的帮助文档安装到 /usr/<directory>/usr/local/<directory> 而不是 /usr/share/<directory>/usr/local/share/<directory>目录。 FHS 还规定必须有 /usr/local/games/usr/share/games 两个目录, 但是作为一个基本系统, 我们并不需要这些。 如果你要完全的遵守 FHS 标准的话,就自己建立这两个目录。至于 /usr/local/share 目录下的子目录,FHS 标准规定得并不严格, 所以我们就创建了(在我们看来)需要的子目录。