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 login 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 non-login, qui ne lit donc pas les
fichiers /etc/profile
ou .bash_profile
, mais plutôt le fichier .bashrc
. Créez maintenant le fichier .bashrc
:
cat > ~/.bashrc << "EOF"
set +h
umask 022
LFS=/mnt/lfs
LC_ALL=POSIX
LFS_TGT=$(uname -m)-lfs-linux-gnu
PATH=/tools/bin:/bin:/usr/bin
export LFS LC_ALL LFS_TGT 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 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éfaut sont utilisés
par l'appel système open(2)
les
nouveaux fichiers finiront avec les droits 644 et les répertoires
avec ceux 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 vous définissez
LC_ALL
à « POSIX » ou
« C »
(les deux étant équivalents) garantit que tout fonctionnera comme
prévu dans l'environnement chroot.
La variable LFS_TGT
initialise une
description de machine compatible mais par défaut lors de la
construction de notre compilateur et de notre éditeur de liens
croisés et lors de la compilation de notre chaîne d'outils
temporaires. Vous trouverez plus d'informations dans Section 5.2,
« Notes techniques sur la chaîne d'outils ».
En plaçant /tools/bin
au début du
PATH
standard, tous les programmes
installés dans Chapter
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, chargez le profil de l'utilisateur tout juste créé :
source ~/.bash_profile