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 clfs
, 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 clfs
, 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
réalise le but d'avoir un 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
file. Créez maintenant le fichier
.bashrc
:
cat > ~/.bashrc << "EOF"
set +h
umask 022
CLFS=/mnt/clfs
LC_ALL=POSIX
PATH=/cross-tools/bin:/bin:/usr/bin
export CLFS LC_ALL PATH
unset CFLAGS CXXFLAGS PKG_CONFIG_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
/cross-tools
dès qu'ils sont
disponibles et sans se rappeler d'une 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 CLFS
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é. Paramétrer LC_ALL
à « POSIX » ou « C » (les deux
sont équivalents) assure que tout marchera comme attendu dans
l'environnement de construction temporaire.
En plaçant /cross-tools/bin
au début de
PATH
, le compilateur croisé construit dans
Constructing Cross-Compile Tools sera choisi par le processus de
construction du système temporaire avant tout programme installé sur
l'hôte. Ceci, combiné avec la désactivation du hachage, permet de
s'assurer que vous utiliserez les outils de compilation croisée pour
construire le système temporaire dans /tools.
Les variables CFLAGS
, CXXFLAGS
et PKG_CONFIG_PATH
ne devraient pas être initialisée lors de la construction du système
temporaire, donc nous les nettoyons.
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