Configuración
del entorno de Linux
Establece
un buen entorno de trabajo mediante la creación de dos nuevos ficheros de
inicio para el intérprete de comandos bash.
Estando en el sistema como usuario lfs, ejecuta los siguientes comandos para
crear un .bash_profile nuevo:
cat > ~/.bash_profile <<
"EOF"
exec env -i HOME=$HOME TERM=$TERM
PS1='\u:\w\$ ' /bin/bash
EOF
Cuando
entras como usuario lfs el intérprete de comandos inicial es un intérprete de
ingreso que lee el /etc/profile de tu anfitrión (que posiblemente contenga
algunos ajustes de variables de entorno) y luego lee .bash_profile. El comando exec env -i.../bin/bash del fichero .bash_profile
sustituye el intérprete de comandos en ejecución por uno nuevo con un entorno
completamente vacío, excepto por las variables HOME, TERM y PS1. Esto asegura
que en el entorno de construcción no aparezcan variables de entorno indeseadas
o dañinas procedentes del sistema anfitrión. La técnica aquí usada consigue el
objetivo de asegurar un entorno limpio.
La nueva
instancia del intérprete comandos es un intérprete de no ingreso que no
lee los ficheros /etc/profile o .bash_profile, pero en su lugar lee el fichero .bashrc.
Crea ahora el fichero .bashrc:
cat > ~/.bashrc <<
"EOF"
set +h
umask 022
LFS=/mnt/lfs
LC_ALL=POSIX
PATH=/tools/bin:/bin:/usr/bin
export LFS LC_ALL PATH
EOF
El
comando set +h desactiva la
función de tablas de dispersión (hash) de bash. Normalmente, esta función es muy útil: bash usa una tabla de dispersión para
recordar la ruta completa de los ejecutables, evitando búsquedas reiteradas en
el PATH para encontrar el mismo binario. Sin embargo, las nuevas herramientas
deberían utilizarse a medida que son instaladas. Al desactivar esta característica,
el intérprete de comandos siempre buscará en el PATH cuando deba ejecutarse un
programa. Por tanto, el intérprete de comandos encontrará las herramientas
recién compiladas en $LFS/tools tan pronto como estén disponibles, sin recordar
una anterior versión del mismo programa en una ubicación diferente.
Establecer
la máscara de creación de ficheros (umask) a 022 asegura que los ficheros y
directorios de nueva creación sólo pueden ser escritos por su propietario, pero
son legibles y ejecutables por cualquiera (asumiendo que los modos por defecto
son usados por la llamada open(2) del sistema, los nuevos ficheros tendrán
permisos 644 y los directorios 755).
La
variable LFS debe establecerse al punto de montaje elegido.
La
variable LC_ALL controla la localización de ciertos programas, haciendo que sus
mensajes sigan las convenciones para un determinado país. Si el sistema
anfitrión utiliza una versión de Glibc anterior a la 2.2.4, tener LC_ALL
establecida a algo diferente a “POSIX” o “C” (durante el siguiente capítulo)
puede causar problemas si sales del entorno chroot e intentas regresar más
tarde. Establecer LC_ALL a “POSIX” o “C” (ambos son equivalentes) asegura que
todo funcionará como se espera dentro del entorno chroot.
Al añadir
/tools/bin al principio del PATH, todos los programas instalados en el Capítulo 5 son
inmediatamente detectados por el intérprete de comandos tras su instalación.
Esto, combinado con la desactivación de las tablas de dispersión, limita el
riesgo de utilizar los antiguos programas del anfitrión cuando dichos programas
ya están disponibles en el entorno del capítulo 5.
Finalmente,
para tener el entorno preparado por completo para construir las herramientas
temporales, carga el perfil de usuario recién creado:
source ~/.bash_profile
No hay comentarios:
Publicar un comentario