6.73. Systemd-244

Le paquet Systemd contient des programmes pour contrôler le démarrage, l'exécution et l'arrêt du système.

Temps de construction approximatif: 0.6 SBU
Espace disque requis: 238 Mo

6.73.1. Installation de Systemd

Créez un lien symbolique pour éviter un problème avec l’absence de xsltproc :

ln -sf /tools/bin/true /usr/bin/xsltproc

Comme nous n'avons pas encore installé la version finale d'Util-Linux, créez des liens vers les bibliothèques à l'endroit approprié :

for file in /tools/lib/lib{blkid,mount,uuid}.so*; do
    ln -sf $file /usr/lib/
done

Mettez en place les pages de manuel :

tar -xf ../systemd-man-pages-244.tar.xz

Supprimez des tests qui ne peuvent pas être construits en chroot :

sed '177,$ d' -i src/resolve/meson.build

Supprimez un groupe inutile, render des règles udev par défaut :

sed -i 's/GROUP="render", //' rules.d/50-udev-default.rules.in

Préparez la compilation de Systemd :

mkdir -p build
cd       build

PKG_CONFIG_PATH="/usr/lib/pkgconfig:/tools/lib/pkgconfig" \
LANG=en_US.UTF-8                   \
meson --prefix=/usr                \
      --sysconfdir=/etc            \
      --localstatedir=/var         \
      -Dblkid=true                 \
      -Dbuildtype=release          \
      -Ddefault-dnssec=no          \
      -Dfirstboot=false            \
      -Dinstall-tests=false        \
      -Dkmod-path=/bin/kmod        \
      -Dldconfig=false             \
      -Dmount-path=/bin/mount      \
      -Drootprefix=                \
      -Drootlibdir=/lib            \
      -Dsplit-usr=true             \
      -Dsulogin-path=/sbin/sulogin \
      -Dsysusers=false             \
      -Dumount-path=/bin/umount    \
      -Db_lto=false                \
      -Drpmmacrosdir=no            \
      ..

Voici la signification des options de meson :

-D*-path=*

Ces paramètres fournissent l'emplacement des binaires requis par systemd à l'exécution qui n'ont pas encore été installés, ou dont les fichiers pkgconfig ne sont actuellement que dans /tools/lib/pkgconfig.

-Ddefault-dnssec=no

Cet argument désactive la prise en charge expérimentale de DNSSEC.

-Dfirstboot=false

Ce paramètre empêche l'installation d'un service de systemd qui est responsable de la mise en place du système pour la première fois. Ceux-ci ne sont pas utiles pour LFS car tout est fait manuellement.

-Dinstall-tests=false

Ce paramètre évite l'installation des tests compilés.

-Dldconfig=false

Ce paramètre empêche l'installation d'une unité de systemd qui lance ldconfig au démarrage, inutile pour les distributions source comme LFS et qui rend celui-ci plus long. Retirez ceci si la fonction est désirée.

-Droot*

Ces paramètres garantissent que les programmes et les bibliothèques partagées du cœur s'installent dans les sous-répertoires de la partition racine.

-Dsplit-usr=true

Ce paramètre garantit que systemd fonctionnera sur des systèmes où les répertoires /bin, /lib et /sbin ne sont pas des liens symboliques vers leurs répertoires /usr correspondant.

-Dsysusers=false

Ce paramètre empêche l’installation de services de systemd responsables de la mise en place des fichiers /etc/group et /etc/passwd. Ces deux fichiers sont créés plus tôt dans ce chapitre.

-Drpmmacrosdir=no

Ce paramètre désactive l'installation des macros RPM pour systemd parce que LFS ne prend pas en charge RPM.

Compilez le paquet :

LANG=en_US.UTF-8 ninja

Installez le paquet :

LANG=en_US.UTF-8 ninja install

Supprimez un lien symbolique inutile :

rm -f /usr/bin/xsltproc

Créez le fichier /etc/machine-id dont a besoin systemd-journald :

systemd-machine-id-setup

Mettez en place la structure cible de base :

systemctl preset-all

Désactivez un service connu pour causer des problèmes avec les systèmes qui utilisent une configuration réseau autre que celle fournie par systemd-networkd :

systemctl disable systemd-time-wait-sync.service

Supprimez des liens symboliques vers les bibliothèques d'Util-Linux :

rm -fv /usr/lib/lib{blkid,uuid,mount}.so*

6.73.2. Contenu de systemd

Programmes installés: bootctl, busctl, coredumpctl, halt (lien symbolique vers systemctl), hostnamectl, init, journalctl, kernel-install, localectl, loginctl, machinectl, networkctl, portablectl, poweroff (lien symbolique vers systemctl), reboot (lien symbolique vers systemctl), resolvconf (lien symbolique vers resolvectl), resolvectl, runlevel (lien symbolique vers systemctl), shutdown (lien symbolique vers systemctl), systemctl, systemd-analyze, systemd-ask-password, systemd-cat, systemd-cgls, systemd-cgtop, systemd-delta, systemd-detect-virt, systemd-escape, systemd-hwdb, systemd-id128, systemd-inhibit, systemd-machine-id-setup, systemd-mount, systemd-notify, systemd-nspawn, systemd-path, systemd-resolve (lien symbolique vers resolvectl), systemd-run, systemd-socket-activate, systemd-stdio-bridge, systemd-tmpfiles, systemd-tty-ask-password-agent, systemd-umount (lien symbolique vers systemd-mount), telinit (lien symbolique vers systemctl), timedatectl et udevadm
Bibliothèques installées: libnss_myhostname.so.2, libnss_mymachines.so.2, libnss_resolve.so.2, libnss_systemd.so.2, libsystemd.so, libsystemd-shared-244.so (dans /lib/systemd) et libudev.so
Répertoires installés: /etc/binfmt.d, /etc/init.d, /etc/kernel, /etc/modules-load.d, /etc/sysctl.d, /etc/systemd, /etc/tmpfiles.d, /etc/udev, /etc/xdg/systemd, /lib/systemd, /lib/udev, /usr/include/systemd, /usr/lib/binfmt.d, /usr/lib/kernel, /usr/lib/modules-load.d, /usr/lib/sysctl.d, /usr/lib/systemd, /usr/lib/tmpfiles.d, /usr/share/doc/systemd-244, /usr/share/factory, /usr/share/systemd, /var/lib/systemd et /var/log/journal

Descriptions courtes

bootctl

Utilisé pour voir les paramètres du firmware et du gestionnaire de démarrage

busctl

Utilisé pour examiner et surveiller le bus D-Bus

coredumpctl

Utilisé pour récupérer les fichiers coredumps du Journal de Systemd

halt

Appelle en principe shutdown avec le paramètre -h, sauf si on est déjà au niveau d'exécution 0, où il dit au noyau d'arrêter le système ; il inscrit dans le fichier /var/log/wtmp que le système va s'éteindre

hostnamectl

Utilisé pour voir et changer le nom d'hôte du système et les paramètres afférents

init

Le premier processus qui démarre lorsque le noyau a initialisé le matériel, qui poursuit le processus de démarrage et lance les processus qu'on lui a demandés

journalctl

Utilisé pour voir le contenu du journal de Systemd

kernel-install

Utilisé pour ajouter et supprimer des images de noyau et des initramfs dans /boot

localectl

Utilisé pour voir et modifier la locale du système et les paramètres de la disposition du clavier

loginctl

Utilisé pour examiner et contrôler l'état du gestionnaire d'identification

machinectl

Utilisé pour examiner et contrôler l'état du gestionnaire des enregistrements de machines virtuelles et de conteneurs

networkctl

Utilisé pour examiner et contrôler l'état de liens du réseau vu par systemd-networkd

portablectl

Utilisé pour attacher ou détacher des services portables d'un système local

poweroff

Dit au noyau d'arrêter le système et d'éteindre l'ordinateur (voir halt).

reboot

Dit au noyau de redémarrer le système (voir halt).

resolvconf

Enregistre la configuration des serveurs DNS et des domaines avec systemd-resolved

resolvectl

Envoie des commandes de contrôle au gestionnaire de résolution de noms réseaux ou résout des noms de domaines, des adresses IPv4 ou IPv6, des enregistrements DNS et des services.

runlevel

Renvoie le niveau d'exécution actuel et précédent indiqué dans le journal du dernier niveau d'exécution situé dans /var/run/utmp

shutdown

Éteint le système de manière sécurisée en envoyant à tous les processus un signal et en notifiant tous les utilisateurs connectés

systemctl

Utilisé pour examiner et contrôler l'état du gestionnaire des services du système de Systemd

systemd-analyze

Utilisé pour déterminer les performances de démarrage du système lors du dernier démarrage

systemd-ask-password

Utilisé pour afficher le mot ou la phrase de passe d'un utilisateur en utilisant une question définie en ligne de commande

systemd-cat

Utilisé pour relier les STDOUT et STDERR d'un processus au journal

systemd-cgls

Affiche de manière récursive le contenu de la hiérarchie des groupes de Linux sélectionnée dans une arborescence

systemd-cgtop

Affiche les groupes de contrôle dans la hiérarchie des groupes du Linux local, triés par processus, charge mémoire et d'E/S disque

systemd-delta

Utilisé pour identifier et comparer des fichiers de configuration de /etc, qui ont leur correspondance par défaut dans /usr

systemd-detect-virt

Détecte l'exécution dans un environnement virtualisé

systemd-escape

Utilisé pour échapper les chaînes de caractères pour les utiliser dans les noms d'unités de systemd

systemd-hwdb

Utilisé pour gérer la base de données matérielle (hwdb)

systemd-id128

Génère et afficher des chaînes id128

systemd-inhibit

Utilisé pour exécuter un programme avec un marqueur d'extinction, de veille ou d'inactivité qui le verrouille

systemd-machine-id-setup

Utilisé par les outils d'installation du système pour initialiser l'ID de la machine contenu dans /etc/machine-id lors de l'installation, avec un ID généré de façon aléatoire

systemd-mount

Un outil pour monter ou monter automatiquement un périphérique temporairement.

systemd-notify

Utilisé par les démons pour indiquer au système de démarrage les changements d'état

systemd-nspawn

Utilisé pour lancer une commande ou un OS dans un conteneur léger dont le nom contient des espaces

systemd-path

Utilisé pour voir les path système et utilisateur

systemd-resolve

Utilisé pour résoudre les noms de domaines, les adresses IPV4 et IPV6, les enregistrements DNS et les services

systemd-run

Utilisé pour créer et démarrer une unité transitoire .service ou .scope et pour y lancer la commande spécifiée

systemd-socket-activate

Un outil pour écouter sur des périphériques de socket et lancer un processus lors d'une connexion.

systemd-tmpfiles

Crée, efface et nettoie les fichiers et les répertoires volatiles et temporaires sur la base d'un format et d'un emplacement du fichier de configuration indiqué dans les répertoires tmpfiles.d

systemd-umount

Démonte des points de montage

systemd-tty-ask-password-agent

Utilisé pour lister ou traiter les requêtes de mots de passe en attente dans Systemd

telinit

Dit à init quel niveau d'exécution adopter

timedatectl

Utilisé pour voir et modifier l'horloge du système et ses paramètres

udevadm

Outil générique d'administration d'Udev : contrôle le démon udevd, donne des infos à partir de la base de données d'Udev, surveille les événements uevents, attend la fin des uevents, teste la configuration d'Udev et déclenche des événements pour un périphérique donné

libsystemd

La bibliothèque d'outils principale de systemd

libudev

Une bibliothèque pour accéder aux informations d'Udev