Systemd-255
Introduction à systemd
Alors que systemd a été installé
avec LFS, il y a plein de fonctionnalités fournies par le paquet
qui n'ont pas été inculeses dans l'installation initiale car
Linux-PAM n'était pas installé. Le
paquet systemd doit être
reconstruit pour fournir un service systemd-logind fonctionnel, qui
fourint plein de fonctionnalités supplémentaires pour les paquets
qui en dépendent.
This package is known to build and work properly using an LFS 12.1
platform.
Informations sur le paquet
-
Téléchargement (HTTP) :
https://github.com/systemd/systemd/archive/v255/systemd-255.tar.gz
-
Téléchargement (FTP) :
-
Somme de contrôle MD5 : 521cda27409a9edf0370c128fae3e690
-
Taille du téléchargement : 15 Mo
-
Estimation de l'espace disque requis : 198 Mo (avec
les tests)
-
Estimation du temps de construction : 3,7 SBU (avec
les tests et 4 cœurs)
Téléchargements supplémentaires
Dépendances de systemd
Recommandées
Note
Linux-PAM-1.6.0 n'est pas strictement
requis pour construire systemd,
mais la raison principale pour reconstruire systemd dans BLFS (il est de toute façon
déjà construit dans LFS) est le démon systemd-logind ainsi que le
module PAM pam_systemd.so
.
Linux-PAM-1.6.0 est requis pour les deux.
Tous les paquets dans le livre BLFS qui ont une dépendance à
systemd s'attendent à ce qu'il
ait été reconstruit avec Linux-PAM-1.6.0.
Linux-PAM-1.6.0 et Polkit-124 (à
l'exécution)
Facultatives
btrfs-progs-6.7.1, cURL-8.6.0,
cryptsetup-2.7.0, git-2.44.0, GnuTLS-3.8.3,
iptables-1.8.10, libgcrypt-1.10.3,
libidn2-2.3.7, libpwquality-1.4.5, libseccomp-2.5.5,
libxkbcommon-1.6.0, make-ca-1.13,
p11-kit-0.25.3, pcre2-10.42, qemu-8.2.1,
qrencode-4.1.1, rsync-3.2.7,
sphinx-7.2.6, Valgrind-3.22.0,
zsh-5.9 (pour les complétions zsh), AppArmor, audit-userspace,
bash-completion,
jekyll, kexec-tools,
libbpf, libdw, libfido2,
libmicrohttpd,
lz4,
pefile, pyelftools,
quota-tools,
rpm, SELinux,
systemtaptpm2-tss et
Xen
Facultatives (pour reconstruire les pages de manuel)
docbook-xml-4.5, docbook-xsl-nons-1.79.2, libxslt-1.1.39 et lxml-4.9.4 (pour
contstruire l'index des pages de manuel de systemd)
Notes des auteurs : https://wiki.linuxfromscratch.org/blfs/wiki/Logind
Installation de systemd
Supprimez deux groupes inutiles, render
et sgx
,
des règles udev par défaut :
sed -i -e 's/GROUP="render"/GROUP="video"/' \
-e 's/GROUP="sgx", //' rules.d/50-udev-default.rules.in
Maintenant corrigez une vulnérabilité de sécurité dans la
vérification DNSSEC de systemd-resolved et un bogue qui
casse l'exécution de systemd-analyze
verify sur une unité systemd instanciée :
patch -Np1 -i ../systemd-255-upstream_fixes-1.patch
Reconstruisez systemd en exécutant
les commandes suivantes :
mkdir build &&
cd build &&
meson setup .. \
--prefix=/usr \
--buildtype=release \
-Ddefault-dnssec=no \
-Dfirstboot=false \
-Dinstall-tests=false \
-Dldconfig=false \
-Dman=auto \
-Dsysusers=false \
-Drpmmacrosdir=no \
-Dhomed=disabled \
-Duserdb=false \
-Dmode=release \
-Dpam=enabled \
-Dpamconfdir=/etc/pam.d \
-Ddev-kvm-mode=0660 \
-Dnobody-group=nogroup \
-Dsysupdate=disabled \
-Dukify=disabled \
-Ddocdir=/usr/share/doc/systemd-255 &&
ninja
Note
Pour de meilleurs résultats, assurez-vous que vous lancez la
suite de tests depuis un système démarré par la même version de
systemd que celle que vous
reconstruisez.
Pour tester les résultats, exécutez : ninja test. Les tests nommé
test-stat-util
et test-netlink
sont connus pour échouer si
certaines fonctionnalités du noyau ne sont pas activées. Si la
suite de tests est lancée par l'utilisateur root
, d'autres tests peuvent échouer car ils
dépendent de diverses options de configuration du noyau.
Maintenant, en tant qu'utilisateur root
:
ninja install
Explication des commandes
--buildtype=release
:
spécifie le type de construction convenant aux versions stables de
ce paquet, comme la valeur par défaut produit des binaires non
optimisés.
-Dpamconfdir=/etc/pam.d
: force
les fichiers PAM à être installés dans /etc/pam.d plutôt qu edans
/usr/lib/pam.d.
-Duserdb=false
:
supprime un démon qui n'offre rien d'utile dans une configuration
BLFS. Si vous voulez activer le démon userdb, remplacez « false » par
« true » dans la commande meson ci-dessus.
-Dhomed=disabled
:
supprime un démon qui n'offre rien d'utile pour une configuration
BLFS traditionnelle, surtout si vous utilisez des comptes créés par
useradd. Pour activer systemd-homed, assurez-vous d'abord que vous
avez installé cryptsetup-2.7.0 et libpwquality-1.4.5, puis remplacez
« disabled » par « enabled »
dans la commande meson
setup ci-dessus.
-Dukify=disabled
:
supprime un script pour combiner un noyau, un initramfs et une
ligne de commande pour le noyau etc en une application UEFI qui
peut être chargée par le micrologiciel UEFI pour démarrer le noyau
Linux embarqué. Il n'est pas requis pour démarrer un système BLFS
avec UEFI si vous suivez
Utiliser GRUB pour paramétrer le processus de démarrage avec
UEFI. De plus, il nécessite le module Python pefile à l'exécution, donc s'il est activé
mais que pefile n'est pas
installé, dans la suite de tests un test échouera. Pour activer
systemd-ukify,
installez le module pefile puis
changez « disabled » en « enabled » ans
la commande meson
setup ci-dessus.
Configuration de systemd
Le fichier /etc/pam.d/system-session
a besoin d'être modifié et un nouveau fichier doit être créé pour
que systemd-logind
fonctionne correctement. Lancez les commandes suivantes en tant
qu'utilisateur root
:
grep 'pam_systemd' /etc/pam.d/system-session ||
cat >> /etc/pam.d/system-session << "EOF"
# Begin Systemd addition
session required pam_loginuid.so
session optional pam_systemd.so
# End Systemd addition
EOF
cat > /etc/pam.d/systemd-user << "EOF"
# Begin /etc/pam.d/systemd-user
account required pam_access.so
account include system-account
session required pam_env.so
session required pam_limits.so
session required pam_loginuid.so
session optional pam_keyinit.so force revoke
session optional pam_systemd.so
auth required pam_deny.so
password required pam_deny.so
# End /etc/pam.d/systemd-user
EOF
En tant qu'utilisateur root
,
remplacez le gestionnaire systemd en cours d'exécution (le
processus init) par
l'exécutable systemd
nouvellement construit et installé :
systemctl daemon-reexec
Important
Assurez-vous maintenant que Shadow-4.14.5
a déjà été reconstruit avec la prise en charge de Linux-PAM-1.6.0 avant, puis
déconnectez-vous et reconnectez-vous. Cela s'assure que la
session de connexion actuelle est enregistrée auprès de
systemd-logind et
qu'une instance de systemd utilisateur est lancée pour chaque
utilisateur possédant une session de connexion. De nombreux
paquets BLFS qui listent Systemd comme dépendance ont besoin
d'une intégration à systemd-logind ou d'une
instance systemd utilisateur.
Avertissement
Si vous mettez à jour depuis une version antérieure de systemd et
qu'un initrd est utilisé pour démarrer le système, vous devriez
générer un nouvel initrd avant de redémarrer le système.
Contenu
Une liste des fichiers installés, avec leur description courte se
trouve sur
../../../../lfs/view/12.1-systemd/chapter08/systemd.html#contents-systemd.
Plus bas sont listés les programmes nouvellement installés et leur
description courte.
Programmes installés:
homectl (facultatif), systemd-cryptenroll
(si cryptsetup-2.7.0 est installé) et
userdbctl (facultatifs)
Descriptions courtes
homectl
|
est un outil pour créer, supprimer, changer et inspecter
un répertoire personnel géré par systemd-homed ;
remarquez que c'est inutile pour les utilisateurs UNIX
classiques et les répertoires personnels qui sont
utilisés dans les livres LFS et BLFS.
|
systemd-cryptenroll
|
Est utilisé pour utiliser ou arrêter d'utiliser le
chiffrement du disque complet pour le système, et pour
initialiser et demander des clés secrètes et des clés de
récupération
|
userdbctl
|
inspecte les utilisateurs, les groupes et les
appartenances de groupes
|
pam_systemd.so
|
est un module PAM utilisé pour enregistrer les sessions
utilisateur auprès du gestionnaire de connexion de
systemd, systemd-logind
|