Configurez un bon environnement de travail en créant deux nouveaux
fichiers de démarrage pour le shell bash. En étant connecté
en tant qu'utilisateur lfs, lancez la commande suivante
pour créer un nouveau .bash_profile
:
cat > ~/.bash_profile << "EOF" exec env -i HOME=$HOME TERM=$TERM PS1='\u:\w\$ ' /bin/bash EOF
Lorsque vous êtes connecté en tant que lfs, le shell
initial est habituellement un shell de connexion qui lit
le fichier /etc/profile
de l'hôte (contenant probablement
quelques configurations et variables d'environnement) et puis
.bash_profile
. La commande exec env
-i.../bin/bash dans le fichier .bash_profile
remplace le shell en cours avec un nouveau ayant un environnement complètement
vide sauf pour les variables HOME
, TERM
et
PS1
. Ceci nous assure qu'aucune variable d'environnement non
souhaitée et potentiellement dangereuse, provenant du système hôte, ne
parvienne dans l'environnement de construction. La technique utilisée ici
s'assure de ce but d'environnement propre.
La nouvelle instance du shell est un shell sans
connexion, qui ne lit donc pas les fichiers
/etc/profile
et .bash_profile
mais
plutôt le fichier .bashrc
. Créez le fichier
.bashrc
maintenant :
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
La commande set +h désactive la fonction de hachage de
bash. D'habitude, le hachage est une fonctionnalité utile.
bash utilise une table de hachage pour se rappeler le chemin
complet des fichiers exécutables pour éviter d'avoir à chercher dans
PATH
à chaque fois qu'il doit trouver le même exécutable.
Néanmoins, les nouveaux outils devraient être utilisés dès leur installation.
En désactivant la fonction de hachage, le shell cherchera en permanence dans
PATH
lorsqu'un programme doit être exécuté. Ainsi, le shell
trouvera les nouveaux outils compilés dans $LFS/tools
dès qu'ils sont disponibles et sans se
rappeler de la version précédente du même programme mais dans un autre
emplacement.
Configurer le masque de création de fichier (umask) à 022 nous assure que les nouveaux fichiers et répertoires créés sont modifiables uniquement par leurs propriétaires mais lisibles et exécutables par tout le monde (en supposant que les modes par défait sont utilisés par l'appel système open(2), les nouveaux fichiers finiront avec les droits 644 et les répertoires avec 755).
La variable LFS
devrait être configurée avec le point de
montage choisi.
La variable LC_ALL
contrôle la localisation de certains
programmes, faisant que leurs messages suivent les conventions d'un pays
spécifié. Si le système hôte utilise une version de Glibc plus ancienne que la
2.2.4, avoir LC_ALL
initialisé à quelque chose d'autre que
« POSIX » ou « C » (pendant ce chapitre) pourrait poser
des problèmes si vous quittez l'environnement chroot et souhaitez y retourner
plus tard. Initialiser LC_ALL
à « POSIX » ou
« C » (les deux sont équivalents) nous assure que tout fonctionnera
comme attendu dans l'environnement chroot.
En plaçant /tools/bin
au début du
PATH
standard, tous les programmes installées dans Chapitre 5 sont récupérés par le shell immédiatement
après leur installation. Ceci, combiné avec la désactivation du hachage, limite
le risque que d'anciens programmes de l'hôte soient utilisés alors que les mêmes
programmes sont disponibles depuis l'environnement du chapitre 5.
Enfin, pour avoir un environnement complètement préparé pour la construction des outils temporaires, récupérez le source du profile de l'utilisateur tout juste créé :
source ~/.bash_profile