Instalando todos los programas como usuario sin privilegios

Si estás trabajando como administrador (root) durante el Capítulo 5, es posible que sobreescribas algunos ficheros del sistema con los que vayas creando en este capítulo. Hay todo tipo de causas para que esto suceda. Por ejemplo, porque no has definido la variable de entorno $LFS. Esta sobreescritura puede causar todo tipo de problemas en tu sistema, así que es una buena idea entrar en el sistema como un usuario sin privilegios durante el Capítulo 5. Para asegurarnos de tener el entorno lo más limpio posible vamos a crearnos un nuevo usuario llamado "lfs", el cual usaremos durante la instalación. Ejecutando como administrador los siguientes comandos crearemos el usuario "lfs":

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

Ahora necesitamos asignarle los permisos apropiados al directorio $LFS/static para que el usuario "lfs" pueda escribir en él.

chown -R lfs $LFS/static

Ya puedes entrar al sistema como el usuario "lfs". Para hacerlo dispones de dos opciones: conectarte normalmente desde el modo consola o el entorno gráfico o mediante su - lfs. Una vez conectado como el usuario "lfs", escribe los siguientes comandos para establecer el entorno de trabajo adecuado:

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

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

Este perfil nos asegura que la máscara de permisos (umask) tenga el valor 022, para que los nuevos archivos y directorios que se creen posean los permisos correctos. Es recomendable que mantengas este valor para la máscara de permisos durante todo el proceso de instalación. Además, establece el valor de las variables de entorno $LFS y $LC_ALL y $CC. La variable $LFS ya se explicó en los capítulos anteriores. La variable $LC_ALL se utiliza para establecer el idioma del sistema.

En el caso de que tu distribución utilice una versión de glibc anterior a la 2.2.4, tener almacenado en la variable $LC_ALL algo que no sea "C" o "POSIX" durante el Capítulo 5 puede causar problemas cuando, estando en el Capítulo 6, quieras salir del entorno chroot e intentes volver a entrar. Dándole el valor "POSIX" ("C" es un alias de "POSIX") nos aseguramos de que todo funcionará correctamente cuando se establezca la nueva raíz.

$CC es una variable que establecemos para evitar que los símbolos de depuración se compilen dentro de nuestros paquetes estáticos. Mediante la omisión de estos símbolos durante el enlazado en la fase de compilación, ahorramos espacio en el disco duro y disminuimos el tiempo de compilación.