10.120. Systemd-233

Le paquet systemd est un gestionnaire de système et de service pour les systèmes d'exploitation Linux.

10.120.1. Installation de Systemd

Évitez que le Makefile n'essaye de lancer setcap sur systemd-detect-virt, qui échouera si le noyau ou le système de fichier ne supporte pas les capacités étendues :

sed -i '/virt-install-hook /d' Makefile.in

Le fichier timesyncd.conf contient une référence à une page de manuel timesyncd.conf(5) inexistante. Supprimez cette référence pour éviter une confusion éventuelle :

sed -i '/timesyncd.conf/d' src/timesync/timesyncd.conf.in

Créez un fichier pour déclarer certaines variables

cat > config.cache << "EOF"
KILL="/bin/kill"
MOUNT_PATH="/bin/mount"
UMOUNT_PATH="/bin/umount"
SULOGIN="/sbin/sulogin"
XSLTPROC="/usr/bin/xsltproc"
cc_cv_LDFLAGS__Wl__fuse_ld_gold=no
EOF

Préparez la compilation de systemd :

CC="gcc ${BUILD64}" PKG_CONFIG_PATH="${PKG_CONFIG_PATH64}" \
./configure \
    --prefix=/usr \
    --sysconfdir=/etc \
    --localstatedir=/var \
    --libexecdir=/usr/lib64 \
    --docdir=/usr/share/doc/systemd-233 \
    --with-rootprefix="" \
    --with-rootlibdir=/lib64 \
    --enable-split-usr \
    --disable-firstboot \
    --disable-ldconfig \
    --disable-lto \
    --disable-sysusers \
    --with-default-dnssec=no \
    --with-kbd-loadkeys=/bin/loadkeys \
    --with-kbd-setfont=/bin/setfont \
    --with-dbuspolicydir=/etc/dbus-1/system.d \
    --with-dbussessionservicedir=/usr/share/dbus-1/services \
    --with-dbussystemservicedir=/usr/share/dbus-1/system-services \
    --config-cache

Voici la signification des options de configure :

--config-cache

Utilisez le fichier config.cache crée.

--with-root*

Ces paramètres assurent que les programmes du cœur et les bibliothèques sont installés dans les sous-répertoires de la partition racine.

--enable-split-usr

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

--disable-firstboot

Ce paramètre évite l'installation des services systemd responsable de la configuration du système pour la première fois. Ils ne sont pas utiles pour CLFS car tout est fait manuellement.

--disable-ldconfig

Ce paramètre évite l'installation d'une unité systemd qui lance ldconfig au démarrage et augment le temps de démarrage. Bien que ce soit inutile pour les distributions source comme CLFS, cette option peut être supprimée.

--disable-lto

Cela évite que le système de construction n'utilise les optimisation à l'édition de lien (LTO) de GCC pour assurer que les binaires de systemd n'essairont pas de se lier à libgcc_s

--disable-sysusers

Ce paramètre évite l'installation des services systemd qui paramètres les fichiers précédemment créés /etc/group et /etc/passwd.

--with-dbus*

Ces paramètres assurent que les fichiers de configuration de D-Bus sont installés aux emplacements corrects.

--with-default-dnssec=no

Ce paramètre désactive le support expérimental de DNSSEC.

Compilez le paquet :

make

Évitez qu'un cas de test cassé ne soit lancé :

sed -e 's@test/udev-test.pl @@'  \
        -e 's@test-copy$(EXEEXT) @@' \
        -i Makefile.in

Pour tester les résultats, lancez :

sed -i "s:minix:ext4:g" src/test/test-path-util.c
make check

Installez le paquet :

make install

Installez les fichiers de documentation qui ne sont pas installés par défaut :

install -v -m644 man/*.html /usr/share/doc/systemd-233

Supprimez un répertoire inutile :

rm -rfv /usr/lib/rpm

Créez les liens symboliques pour la compatibilité avec Sysvinit :

for tool in runlevel reboot shutdown poweroff halt telinit; do
  ln -sfv ../bin/systemctl /sbin/$tool
done
ln -sfv ../lib/systemd/systemd /sbin/init

10.120.2. Configuration de Systemd

Créez /etc/machine-id qui est requis par Jornald :

systemd-machine-id-setup

Créez un fichier pour identifier le système d'exploitation. systemd utilisera ce fichier au démarrage pour afficher des informations à l'écran.

cat > /etc/os-release << "EOF"
# Begin /etc/os-release

NAME=Cross-LFS
ID=clfs

PRETTY_NAME=Cross Linux From Scratch
ANSI_COLOR=0;33

VERSION=GIT-20170803
VERSION_ID=20170803

# End /etc/os-release
EOF

10.120.3. Contenu de Systemd

Programmes installés: bootctl, busctl, halt (lien vers systemctl), hostnamectl, init (lien vers systemd), journalctl, kernel-install, localectl, loginctl, machinectl, poweroff (lien vers systemctl), reboot (lien vers systemctl), runlevel (lien vers systemctl), shutdown (lien vers systemctl), systemctl, systemd, system-analyze, systemd-ask-password, systemd-cat, systemd-cgls, systemd-cgtop, systemd-coredumpctl, systemd-delta, systemd-detect-virt, systemd-inhibit, systemd-machine-id-setup, systemd-notify, systemd-nspawn, systemd-run, systemd-stdio-bridge (lien vers systemd-bus-proxyd), systemd-tmpfiles, systemd-tty-ask-password-agent, telinit (lien vers systemctl), timedatectl, udevadm
Bibliothèques installées: libnss_myhostname.so, libsystemd.so, 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/share/doc-systemd-233, /usr/share/systemd, /usr/share/zsh, /var/lib/systemd

Descriptions courtes

bootctl

Contrôle les paramètres des microprogrammes et du gestionnaire de démarrage

busctl

Introspecte et surveille le bus D-Bus

halt

Arrête, éteint ou redémarre la machine

hostnamectl

Contrôle le nom d'hôte du système

init

gestionnaire de système et de service systemd

journalctl

Recherche dans le journal systemd

kernel-install

Ajoute et supprime des noyaux et des images initramfs dans /boot

localectl

Contrôle la régionalisation du système et les paramètres de disposition du clavier

loginctl

Contrôle le gestionnaire de connexion systemd

machinectl

Contrôle le gestionnaire de machine systemd

poweroff

Arrête, éteint ou redémarre la machine

reboot

Arrête, éteint ou redémarre la machine

runlevel

Affiche le niveau d'exécution SysV précédent et actuel

shutdown

Arrête, éteint ou redémarre la machine

systemctl

Contrôle le gestionnaire de système et de service systemd

systemd

Gestionnaire de système et de service pour Linux

systemd-analyze

Analyse les performances au démarrage du système

systemd-ask-password

Demande une phrase de passe système à l'utilisateur via l'agent TTY ou graphique

systemd-cat

Connecte une pipeline ou la sortie d'un programme au journal

systemd-cgls

Montre récursivement les contenus des groupes de contrôle

systemd-cgtop

Montre les groupes de contrôle parent par utilisation de ressources

systemd-coredumpctl

Retrouve les coredumps depuis le journal

systemd-delta

Trouve les fichiers de configuration réécrits

systemd-detect-virt

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

systemd-inhibit

Exécute un programme en prenant un verrou d'inhibition

systemd-machine-id-setup

Initialise l'ID de la machine dans /etc/machine-id

systemd-notify

Notifie le système d'initialisation à la fin du démarrage et des changements de status des autres démons

systemd-nspawn

Crée un conteneur d'espace de noms pour le débogage, le test et la construction

systemd-run

Lance les programmes dans une portée transitoire ou des unités de service

systemd-stdio-bridge

Connecte stdio ou un socket à une adresse de bus donnée

systemd-tmpfiles

Crée, supprime et nettoie les fichiers volatiles et temporaires

systemd-tty-ask-password-agent

Exécute les requêtes de mot de passe système

telinit

Dit à init vers quel niveau d'exécution aller

timedatectl

Contrôle la date et l'heure du système

udevadm

Outil de gestion d'Udev

libnss_myhostname

Greffon pour la fonctionnalité GNU Name Service Switch (NSS) de Glibc, qui fourni la résolution de nom d'hôte pour les noms d'hôte configurés localement

libsystemd

Bibliothèque de support pour systemd

libudev

Une bibliothèque d'interface pour les informations sur les appareils gérés par Udev