Introduksjon til systemd
Mens systemd ble installert under
byggingen av LFS, er det mange funksjoner levert av pakken som ikke
ble inkludert i den første installasjonen fordi Linux-PAM var ennå ikke installert.
systemd pakken må bli bygd om
igjen for å gi en fungerende systemd-logind service, som gir
mange tilleggsfunksjoner for avhengige pakker.
Denne pakken er kjent for å bygge og fungere riktig ved å bruke en
LFS 12.2 plattform.
Pakkeinformasjon
systemd Avhengigheter
Anbefalt
Note
Linux-PAM-1.6.1 er strengt tatt ikke
nødvendig for å bygge systemd,
men hovedgrunnen til å gjenoppbygge systemd i BLFS (den er allerede bygd i LFS
uansett) er for systemd-logind nissen og
pam_systemd.so
PAM modulen.
Linux-PAM-1.6.1 er nødvendig for dem. Alle
pakker i BLFS boken med en avhengighet av systemd forventer at den er bygget med
Linux-PAM-1.6.1.
Linux-PAM-1.6.1 og Polkit-125
(kjøretid)
Valgfri
btrfs-progs-6.10.1, cURL-8.9.1,
cryptsetup-2.7.4, git-2.46.0, GnuTLS-3.8.7.1,
iptables-1.8.10, libgcrypt-1.11.0,
libidn2-2.3.7, libpwquality-1.4.5, libseccomp-2.5.5,
libxkbcommon-1.7.0, make-ca-1.14,
p11-kit-0.25.5, pcre2-10.44, qemu-9.0.2,
qrencode-4.1.1, rsync-3.3.0,
sphinx-8.0.2, Valgrind-3.23.0,
zsh-5.9 (for zsh fullføringer), AppArmor, audit-userspace,
bash-completion,
jekyll, kexec-tools,
libbpf, libdw, libfido2,
libmicrohttpd,
pefile, pyelftools,
quota-tools,
rpm, SELinux,
systemtap, tpm2-tss og
Xen
Valgfri (for å gjenoppbygge manualsidene)
docbook-xml-4.5, docbook-xsl-nons-1.79.2, libxslt-1.1.42, og lxml-5.3.0 (å
bygge indeksen over systemd manualsidene)
Redaktørens notater: https://wiki.linuxfromscratch.org/blfs/wiki/Logind
Installasjon av systemd
Fjern to unødvendige grupper, render
og sgx
,
fra standard udev regler:
sed -i -e 's/GROUP="render"/GROUP="video"/' \
-e 's/GROUP="sgx", //' rules.d/50-udev-default.rules.in
Gjenoppbygg systemd ved å kjøre
følgende kommandoer:
mkdir build &&
cd build &&
meson setup .. \
--prefix=/usr \
--buildtype=release \
-D default-dnssec=no \
-D firstboot=false \
-D install-tests=false \
-D ldconfig=false \
-D man=auto \
-D sysusers=false \
-D rpmmacrosdir=no \
-D homed=disabled \
-D userdb=false \
-D mode=release \
-D pam=enabled \
-D pamconfdir=/etc/pam.d \
-D dev-kvm-mode=0660 \
-D nobody-group=nogroup \
-D sysupdate=disabled \
-D ukify=disabled \
-D docdir=/usr/share/doc/systemd-256.4 &&
ninja
Note
For de beste testresultatene, sørg for at du kjører testpakken
fra et system som startes opp av det samme systemd versjonen du bygger om.
For å teste resultatene, utsted: ninja test. Testen navngitt
test-stat-util
er kjent for å
mislykkes hvis noen kjernefunksjoner ikke er aktivert. Hvis
testpakken kjøres som root
bruker,
noen andre tester kan mislykkes fordi de er avhengige av ulike
kjerne konfigurasjonsalternativer.
Nå, som root
bruker:
ninja install
Parameterforklaringer
--buildtype=release
:
Spesifiser en byggetype egnet for stabile utgivelser av pakken, som
standard kan produsere uoptimaliserte binærfiler.
-D pamconfdir=/etc/pam.d
:
Tvinger PAM filene til å installeres i /etc/pam.d i stedet for
/usr/lib/pam.d.
-D userdb=false
: Fjerner en
nisse som ikke gjør noe under en BLFS konfigurasjon. Hvis du ønsker
å aktivere userdbd nissen,
erstatte "false" med "true" i mesonkommandoen ovenfor.
-D homed=disabled
: Fjerner
en nisse som ikke gjør noe under en BLFS konfigurasjon, spesielt
ved å bruke kontoer opprettet med useradd. For å aktivere
systemd-homed, sørg først for at du har cryptsetup-2.7.4 og libpwquality-1.4.5 installert, og endre
deretter “disabled” til “enabled” i kommandoen
meson setup ovenfor.
-D ukify=disabled
: Fjerner
et skript for å kombinere en kjerne, en initramfs og en
kjernekommandolinje osv. inn i en UEFI applikasjon som kan lastes
inn av UEFI fastvaren for å starte den innebygde Linux kjernen. Det
er ikke nødvendig for å starte opp et BLFS system med UEFI hvis
Using GRUB to Set
Up the Boot Process with UEFI følges. Og det krever
pefile Python modulen ved
kjøretid, så hvis det er aktivert men pefile ikke er installert, vil en test for den
mislykkes i testpakken. For å aktivere systemd-ukify, installer
pefile modulen og deretter endre
“disabled”
til “enabled”
i ovenstående meson
setup kommandoen.
Konfigurere systemd
/etc/pam.d/system-session
filen må
endres og en ny fil må opprettes for at systemd-logind skal fungere
riktig. Kjør følgende kommandoer som root
bruker:
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_unix.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
Som root
bruker, erstatte den
kjørende systemd
behandleren (init
prosessen) med systemd kjørbare nylig bygd og
installert:
systemctl daemon-reexec
Important
Sørg først for at Shadow-4.16.0 allerede er ombygd med
Linux-PAM-1.6.1 støtte , deretter logg ut
og logg på en gang til. Dette sikrer at den kjørende
påloggingsøkten registrert med systemd-logind og en per-bruker
systemd forekomst kjører for hver bruker som eier en
påloggingsøkt. Mange BLFS pakker som lister Systemd som en
avhengighet trenger systemd-logind integrasjon
og/eller en kjørende per-bruker systemd forekomst.
Warning
Hvis du oppgraderer fra en tidligere versjon av systemd og en
initrd brukes til systemoppstart, bør du generere en ny initrd
før omstart av systemet.
Innhold
En liste over installerte filer, sammen med deres korte
beskrivelser finner du på
../../../../lfs/view/12.2-systemd/chapter08/systemd.html#contents-systemd.
Listet nedenfor er de nylig installerte programmene sammen med
korte beskrivelser.
Installerte Programmer:
homectl (valgfri), systemd-cryptenroll
(hvis cryptsetup-2.7.4 er installert), og
userdbctl (valgfri)
Korte Beskrivelser
homectl
|
er et verktøy for å opprette, fjerne, endre eller
inspisere en hjemmemappe styrt av systemd-homed; merk at
det er ubrukelig for de klassiske UNIX brukere og
hjemmemapper som vi bruker i LFS/BLFS-boken
|
systemd-cryptenroll
|
Brukes til å registrere eller fjerne et system fra full
diskkryptering, samt angi og spørre om private nøkler og
gjenopprettingsnøkler
|
userdbctl
|
inspiserer brukere, grupper og gruppemedlemskap
|
pam_systemd.so
|
er en PAM modul som brukes til å registrere brukerøkter
med systemd
påloggingsbehandler, systemd-logind
|