7.4. Entrer dans l'environnement chroot

Maintenant que tous les paquets requis pour construire le reste des outils nécessaires sont sur le système, il est temps d'entrer dans l'environnement chroot pour finir l'installation des outils temporaires. Nous utiliserons aussi cet environnement pour l'installation du système final. En tant que root, lancez la commande suivante pour entrer dans cet environnement qui, pour le moment, contient seulement les outils temporaires :

chroot "$LFS" /usr/bin/env -i   \
    HOME=/root                  \
    TERM="$TERM"                \
    PS1='(lfs chroot) \u:\w\$ ' \
    PATH=/usr/bin:/usr/sbin     \
    MAKEFLAGS="-j$(nproc)"      \
    TESTSUITEFLAGS="-j$(nproc)" \
    /bin/bash --login

Si vous ne voulez pas utiliser tous les cœurs logiques disponibles, remplacez $(nproc) par le nombre de cœurs logiques que vous voulez utiliser pour construire les paquets de ce chapitre et des chapitres suivants. Les suites de test de certains paquets (notamment AUtoconf, Libtool et Tar) dans Chapitre 8 ne sont pas affectées par MAKEFLAGS, elles utilisent une variable d'environnement TESTSUITEFLAGS à la place. Nous l'indiquons également ici pour exécuter ces tests avec plusieurs cœurs.

L'option -i donnée à la commande env effacera toutes les variables de l'environnement chroot. Après cela, seules les variables HOME, TERM, PS1 et PATH sont rétablis. La construction TERM=$TERM définit la variable TERM à l'intérieur du chroot avec la même valeur qu'à l'extérieur du chroot. Cette variable est nécessaire pour que des programmes comme vim et less fonctionnent correctement. Si vous avez besoin d'autres variables, telles que CFLAGS ou CXXFLAGS, c'est le bon endroit pour les indiquer.

À partir de maintenant, il n'est plus nécessaire d'utiliser la variable LFS parce que tout le travail sera restreint au système de fichiers LFS. La commande chroot exécute l'interpréteur de commande Bash avec le répertoire racine (/) correspondant à $LFS.

Remarquez que /tools/bin n'est pas dans le PATH. Ceci signifie que la chaîne d'outils croisée ne sera plus utilisée.

Remarquez également que l'invite bash affichera I have no name!. Ceci est normal car le fichier /etc/passwd n'a pas encore été créé.

[Note]

Note

Il est important que toutes les commandes au sein du reste de ce chapitre et des chapitres suivants soient exécutées à l'intérieur de l'environnement chroot. Si vous devez quitter cet environnement pour une quelconque raison (un redémarrage par exemple), assurez-vous que les systèmes de fichiers virtuels du noyau sont montés comme expliqué dans Section 7.3.1, « Monter et alimenter /dev » et Section 7.3.2, « Monter les systèmes de fichiers virtuels du noyau » et entrez de nouveau dans le chroot avant de continuer l'installation.