Systemd-257.8

Introduksjon til Systemd

Selv om Systemd ble installert da LFS ble bygget, er det mange funksjoner i pakken som ikke var inkludert i den første installasjonen fordi Linux-PAM ikke var installert ennå. Systemd pakken må bygges opp igjen for å gi en fungerende systemd-logind tjeneste, som tilbyr mange tilleggsfunksjoner for avhengige pakker.

Systemd Avhengigheter

Påkrevd

Anbefalt

[Notat]

Notat

Linux-PAM-1.7.1 er ikke strengt tatt nødvendig for å bygge Systemd, men hovedgrunnen til å gjenoppbygge Systemd i GLFS (det er allerede innebygd i LFS uansett) er for systemd-logind daemon og pam_systemd.so PAM modulen. Linux-PAM-1.7.1 er nødvendig for dem. Alle pakker i GLFS boken med en avhengighet av Systemd forventer at den er gjenoppbygd med Linux-PAM-1.7.1.

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-257.8 &&

ninja

Nå, som root bruker:

ninja install

lib32 Installasjon av Systemd

Gjenoppbygg lib32-Systemd ved å kjøre følgende kommandoer:

rm -rf * &&
LANG=en_US.UTF-8                  \
meson setup .. --cross-file lib32 \
      --prefix=/usr               \
      --libdir=/usr/lib32         \
      --buildtype=release         \
      -D default-dnssec=no        \
      -D firstboot=false          \
      -D install-tests=false      \
      -D ldconfig=false           \
      -D man=disabled             \
      -D sysusers=false           \
      -D rpmmacrosdir=no          \
      -D homed=disabled           \
      -D userdb=false             \
      -D mode=release             \
      -D pam=enabled              \
      -D pamconfdir=/etc/pam.d &&

LANG=en_US.UTF-8 ninja

Nå, som root bruker:

LANG=en_US.UTF-8 DESTDIR=$PWD/DESTDIR ninja install          &&
cp -vR DESTDIR/usr/lib32/security       /usr/lib32           &&
cp -va DESTDIR/usr/lib32/libsystemd.so* /usr/lib32           &&
cp -va DESTDIR/usr/lib32/libudev.so*    /usr/lib32           &&
cp -v  DESTDIR/usr/lib32/pkgconfig/*    /usr/lib32/pkgconfig &&
rm -rf DESTDIR

Parameterforklaringer

[Notat]

Notat

Undersøk meson_options.txt eller meson.options for en fullstendig liste over alternativer.

--buildtype=release: Spesifiser en byggetype som er egnet for stabile utgivelser av pakken, da standardtypen kan produsere uoptimaliserte binærfiler.

-D pamconfdir=/etc/pam.d: Tvinger PAM filene til å bli installert i /etc/pam.d i stedet for /usr/lib/pam.d.

-D userdb=false: Fjerner en daemon som ikke tilbyr noen bruk under en GLFS konfigurasjon.

-D homed=disabled: Fjerner en daemon som ikke tilbyr noen bruk under en tradisjonell GLFS konfigurasjon, spesielt ved bruk av kontoer opprettet med useradd. Avhengighetene som trengs vil ikke bli installert i denne boken.

-D ukify=disabled: Fjerner et skript for å kombinere en kjerne, en initramfs og en kjernekommandolinje osv. inn i et UEFI program som kan lastes inn av UEFI fastvaren for å starte den innebygde Linuxkjernen. Det er ikke nødvendig hvis du fulgte instruksjonene iBLFS' Grub UEFI Oppsett.

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_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, erstatt den kjørende systemd behandleren (init prosessen) med systemd kjørbar som er nybygd og installert:

systemctl daemon-reexec
[Viktig]

Viktig

Først forsikre at Shadow-4.18.0 allerede er gjenoppbygd med Linux-PAM-1.7.1 støtte, deretter logg ut og logg inn igjen. Dette sikrer at den kjørende innloggingsøkten som er registrert med systemd-logind og en Systemd instans per bruker som kjører for hver bruker som eier en påloggingsøkt. Mange GLFS pakker som oppgir Systemd som en avhengighet, trenger systemd-logind integrasjon og/eller en kjørende Systemd instans per bruker.

[Advarsel]

Advarsel

Hvis du oppgraderer fra en tidligere versjon av Systemd og en initrd brukes til systemoppstart, bør du generere en ny initrd før du starter systemet på nytt.

Innhold

En liste over de installerte filene, sammen med korte beskrivelser, finner du på https://www.linuxfromscratch.org/lfs/view/systemd/chapter08/systemd.html#contents-systemd.

Nedenfor er det nylig installerte biblioteket listet opp sammen med en kort beskrivelse.

Installert Bibliotek: pam_systemd

Korte Beskrivelser

pam_systemd

er en PAM modul som brukes til å registrere brukerøkter med systemd påloggingsbehandleren, systemd-logind