make_system_dirs() { # # Install FHS system directories. # for d in boot etc etc/modprobe.d etc/skel \ home dev proc usr mnt opt sys var run/lock; do [ ! -d ${d} ] && install -d ${d} done [ ! -d root ] && install -dm750 root [ ! -d var/spool/mail ] && install -dm1777 var/spool/mail for d in local local/bin local/sbin local/include local/lib \ bin include lib sbin src; do [ ! -d usr/${d} ] && install -d usr/${d} done for d in locale misc terminfo zoneinfo doc info; do [ ! -d usr/share/${d} ] && install -d usr/share/${d} [ ! -d usr/local/share/${d} ] && install -d usr/local/share/${d} done for d in 1 2 3 4 5 6 7 8; do [ ! -d usr/share/man/man${d} ] && \ install -d usr/share/man/man${d} [ ! -d usr/local/share/man/man${d} ] && \ install -d usr/local/share/man/man${d} done # Create /bin, /sbin and /lib symlinks to /usr. for d in bin sbin lib; do if [ ! -h "$d" -a -d "$d" ]; then echo "/${d} must not be a directory, exiting!" exit 1 fi ln -sf usr/${d} . done for d in log opt cache lib; do [ ! -d var/${d} ] && install -d var/${d} done if [ "${ARCH}" = "x86_64" ]; then ln -sf usr/lib lib64 cd usr && ln -sf lib lib64 && cd .. install -d usr/lib32 ln -sf usr/lib32 lib32 fi if [ "${ARCH}" = "i686" ]; then ln -sf lib lib32 ln -sf lib usr/lib32 fi # Create /var/run and /var/lock symlinks. for d in run lock; do if [ ! -h "var/$d" -a -d var/${d} ]; then echo "/${d} must not be a directory, exiting!" exit 1 fi done cd var ln -sf ../run . ln -sf ../run/lock . ln -sf spool/mail mail cd .. install -dm1777 tmp install -dm1777 var/tmp } case "${ACTION}" in pre|post) echo "Creating system directories/symlinks..." make_system_dirs ;; esac