11.5. Débuter After LFS

11.5.1. Décider que faire ensuite

Maintenant que LFS est terminé et que vous avez un système démarrable, que faire ? L'étape suivante est de décider comment l'utiliser. En général, il y a deux catégories génériques à prendre en compte : système de bureau ou serveur. Ces catégories ne sont pas mutuellement exclusives. Les applications requises pour chaque catégorie peuvent être combinées au sein d'un unique système, mais regardons les séparément pour le moment.

Un serveur est la catégorie la plus simple. En général elle consiste en un serveur web comme le serveur HTTP Apache et en un serveur de base de données comme MariaDB. Cependant d'autres services sont possibles. Le système d'exploitation inclus dans un appareil à but unique se trouve dans cette catégorie.

Un système de bureau, en revanche, est plus complexe car il requiert généralement un environnement utilisateur graphique tel que LXDE, XFCE, KDE, ou Gnome basé sur un environnement graphique de base et plusieurs applications à base graphique tel que Firefox web browser, Thunderbird email client, ou LibreOffice office suite. Ces applications requièrent encore plus de paquets (plusieurs centaines selon les capacités souhaitées) de prise en charge des applications et de bibliothèques.

Outre les aspects déjà mentionnés, il existe un ensemble d'applications d'administration système pour toutes sortes de systèmes. Ces applications sont dans le livre BLFS. Tous les paquets ne sont pas nécessaires dans tous les environnements. Par exemple dhcpcd, n'est pas approprié pour un serveur et wireless_tools, n'est utile que pour un système portable.

11.5.2. Travailler dans un environnement LFS de base

Lorsque vous vous lancez dans LFS, vous disposez de tous les outils internes pour construire des paquets supplémentaires. Malheureusement, l'environnement utilisateur est plutôt sommaire. Il y a plusieurs façons d'améliorer cela :

11.5.2.1. Travailler à partir du hôte LFS dans l’environnement chroot

Cette méthode permet de disposer d'un environnement graphique avec un navigateur intégral et des fonctions de copier/coller disponibles. Cette méthode permet d'utiliser des applications comme la version de l'hôte de wget pour télécharger les sources des paquets à un emplacement disponible lorsque l'on travaille dans l'environnement chroot.

Afin de construire correctement les paquets dans l'environnement chroot, montez les systèmes de fichiers virtuels s'ils ne sont pas déjà montés. Une façon de le faire est de créer un script sur le système HOST :

cat > ~/mount-virt.sh << "EOF"
#!/bin/bash

function mountbind
{
   if ! mountpoint $LFS/$1 >/dev/null; then
     $SUDO mount --bind /$1 $LFS/$1
     echo $LFS/$1 mounted
   else
     echo $LFS/$1 already mounted
   fi
}

function mounttype
{
   if ! mountpoint $LFS/$1 >/dev/null; then
     $SUDO mount -t $2 $3 $4 $5 $LFS/$1
     echo $LFS/$1 mounted
   else
     echo $LFS/$1 already mounted
   fi
}

if [ $EUID -ne 0 ]; then
  SUDO=sudo
else
  SUDO=""
fi

if [ x$LFS == x ]; then
  echo "LFS not set"
  exit 1
fi

mountbind dev
mounttype dev/pts devpts devpts -o gid=5,mode=620
mounttype proc    proc   proc
mounttype sys     sysfs  sysfs
mounttype run     tmpfs  run
if [ -h $LFS/dev/shm ]; then
  install -v -d -m 1777 $LFS$(realpath /dev/shm)
else
  mounttype dev/shm tmpfs tmpfs -o nosuid,nodev
fi 

#mountbind usr/src
#mountbind boot
#mountbind home
EOF

Remarquez que les trois dernières commandes du script sont commentées. Elles sont utiles si ces répertoires sont montés comme des partitions séparées sur le système hôte et s'ils seront montés lors du démarrage du système LFS/BLFS finalisé.

Le script peut être exécuté avec bash ~/mount-virt.sh en tant qu'utilisateur normal (recommandé) ou en tant que root. S'il est exécuté en tant qu'utilisateur normal, sudo est requis dans le système hôte.

Un autre problème signalé par le script est où stocker les fichiers de paquets téléchargés. Cet emplacement est arbitraire. Il peut être dans le répertoire personnel d'un utilisateur ordinaire comme ~/sources ou dans un emplacement global comme /usr/src. Notre recommandation est de ne pas mélanger les sources BLFS et les sources LFS dans (à partir de l'environnement chroot) /sources. Dans tous les cas, les paquets doivent être accessibles à l'intérieur de l'environnement chroot.

Une dernière fonctionnalité pratique présentée ici permet de rationaliser le processus d'entrée dans l'environnement chroot. Cela peut être fait avec un alias placé dans le fichier ~/.bashrc d'un utilisateur sur le système hôte :

alias lfs='sudo /usr/sbin/chroot /mnt/lfs /usr/bin/env -i HOME=/root TERM="$TERM" PS1="\u:\w\\\\$ "
PATH=/bin:/usr/bin:/sbin:/usr/sbin /bin/bash --login'

Cet alias est un peu délicat à cause des guillemets et des niveaux de barres obliques. Tout doit figurer sur une seule ligne. La commande ci-dessus a été divisée en deux pour des raisons de présentation.

11.5.2.2. Travailler à distance via ssh

Cette méthode offre également un environnement graphique complet, mais nécessite d'abord d'installer sshd sur le système LFS. Cette méthode requiert aussi un deuxième ordinateur. Cette méthode a l'avantage d'être simple en ne nécessitant pas la complexité de l'environnement chroot. Cette méthode utilise le noyau LFS déjà construit pour l'installation de paquets supplémentaires en fournissant tout de même un système complet pour l'installation des paquets.

Vous pouvez utiliser la commande scp pour téléverser les sources du paquet à construire sur le système LFS. Si vous voulez plutôt télécharger les sources sur le système LFS directement, installez libtasn1, p11-kit, make-ca et wget en chroot (ou envoyez leurs sources avec scp après avoir démarré le système LFS).

11.5.2.3. Travailler depuis la ligne de commande LFS

Cette méthode nécessite l’installation de libtasn1, p11-kit, make-ca, wget, gpm, et links (ou lynx) dans chroot et ensuite d’un redémarrage dans le nouveau système LFS. À ce stade, le système par défaut possède six consoles virtuelles. Changer de console est aussi simple que d'utiliser les combinaisons de touches Alt+FxFx est entre F1 et F6. Les combinaisons des touches Alt+ et Alt+ changeront aussi la console.

Maintenant, vous pouvez vous connecter à deux consoles virtuelles différentes et exécuter le navigateur web links ou lynx dans une console tandis que vous exécutez bash dans l'autre. GPM permet alors de copier les commandes du navigateur avec le bouton gauche de la souris, de changer de console et de les coller dans l'autre console.

[Note]

Note

À titre d'information, le changement de console virtuelle peut également être effectué à partir d'une fenêtre X avec la combinaison de touches Ctrl+Alt+Fx, mais l'opération de copie de la souris ne fonctionne pas entre l'interface graphique et une console virtuelle. Vous pouvez revenir à l'affichage de la fenêtre X avec la combinaison Ctrl+Alt+Fx, où Fx est généralement F1 mais peut être F7.