Systemd-256.4

Introdução ao "systemd"

Enquanto o systemd foi instalado quando da construção do LFS, existem muitos recursos fornecidos pelo pacote que não foram incluídos na instalação inicial porque o Linux-PAM ainda não estava instalado. O pacote systemd precisa ser reconstruído para fornecer um serviço systemd-logind funcional, o qual fornece muitos recursos adicionais para pacotes dependentes.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.2.

Informação do Pacote

  • Transferência (HTTP): https://github.com/systemd/systemd/archive/v256.4/systemd-256.4.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 03bd1ff158ec0bc55428c77a8f8495bd

  • Tamanho da transferência: 15 MB

  • Espaço em disco estimado exigido: 328 MB (com testes)

  • Tempo de construção estimado: 1,5 UPC (com testes usando quatro núcleos)

Dependências do "systemd"

Recomendadas

[Nota]

Nota

Linux-PAM-1.6.1 não é estritamente necessário para construir o systemd, mas é o principal motivo para reconstruir o systemd no BLFS (ele já está construído no LFS de qualquer maneira) é para o processo de segundo plano systemd-logind e o módulo PAM pam_systemd.so. Linux-PAM-1.6.1 é exigido para eles. Todos os pacotes no livro BLFS com dependência do systemd esperam que tenham sido reconstruídos com Linux-PAM-1.6.1.

Opcionais

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 (para as completações do zsh), AppArmor, audit-userspace, bash-completion, jekyll, kexec-tools, libbpf, libdw, libfido2, libmicrohttpd, pefile, pyelftools, quota-tools, rpm, SELinux, systemtap, tpm2-tss e Xen

Opcional (para reconstruir as páginas de manual)

docbook-xml-4.5, docbook-xsl-nons-1.79.2, libxslt-1.1.42 e lxml-5.3.0 (para construir o índice das páginas de manual do "systemd")

Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/Logind

Instalação do "systemd"

Remova dois grupos desnecessários, render e sgx, das regras padrão do "udev":

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

Reconstrua o systemd executando os seguintes comandos:

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
[Nota]

Nota

Para os melhores resultados de teste, certifique-se de executar a suíte de testes a partir de um sistema que seja inicializado pela mesma versão do systemd que você estiver reconstruindo.

Para testar os resultados, emita: ninja test. O teste chamado test-stat-util é conhecido por falhar se alguns recursos do núcleo não estiverem habilitados. Se a suíte de teste for executada como o(a) usuário(a) root, alguns outros testes possivelmente falhem, porque dependem de várias opções de configuração do núcleo.

Agora, como o(a) usuário(a) root:

ninja install

Explicações do Comando

--buildtype=release: Especifique um tipo de construção adequado para lançamentos estáveis do pacote, pois o padrão possivelmente produza binários não otimizados.

-D pamconfdir=/etc/pam.d: Força os arquivos do PAM serem instalados em /etc/pam.d em vez de /usr/lib/pam.d.

-D userdb=false: Remove um processo de segundo plano que não oferece qualquer uso sob uma configuração do BLFS. Se você deseja habilitar o processo de segundo plano userdbd, substitua "false" por "true" no comando meson acima.

-D homed=disabled: Remove um processo de segundo plano que não oferece qualquer uso sob uma configuração tradicional do BLFS, especialmente usando contas criadas com useradd. Para habilitar o systemd-homed, primeiro certifique-se de que você tenha cryptsetup-2.7.4 e libpwquality-1.4.5 instalados e, em seguida, mude disabled para enabled no comando meson setup acima.

-D ukify=disabled: Remove um conjunto de comandos sequenciais para combinar um núcleo, um initramfs e uma linha de comando do núcleo, etc., em um aplicativo UEFI que pode ser carregado pelo firmware UEFI para iniciar o núcleo incorporado Linux. Ele não é necessário para inicializar um sistema BLFS com UEFI se seguir-se Usando o GRUB para Configurar o Processo de Inicialização com UEFI. E ele exige o módulo pefile do Python em tempo de execução, de forma que, se estiver habilitado, mas pefile não estiver instalado, na suíte de teste um teste para ele falhará. Para habilitar o systemd-ukify, instale o módulo pefile e, então, mude disabled para enabled no comando meson setup acima.

Configurando o "systemd"

O arquivo /etc/pam.d/system-session precisa ser modificado e um novo arquivo precisa ser criado para a finalidade de que o systemd-logind funcione corretamente. Execute os seguintes comandos como o(a) usuário(a) root:

grep 'pam_systemd' /etc/pam.d/system-session ||
cat >> /etc/pam.d/system-session << "EOF"
# Inicia adições do Systemd

session  required    pam_loginuid.so
session  optional    pam_systemd.so

# Termina adições do Systemd
EOF

cat > /etc/pam.d/systemd-user << "EOF"
# Inicia /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

# Termina /etc/pam.d/systemd-user
EOF

Como o(a) usuário(a) root, substitua o gerenciador systemd em execução (o processo init) pelo executável systemd recém-construído e instalado:

systemctl daemon-reexec
[Importante]

Importante

Agora certifique-se de que Shadow-4.16.0 já tenha sido reconstruído com suporte Linux-PAM-1.6.1 primeiro, depois deslogue-se e logue-se novamente. Isso garante a sessão de login em execução registrada com systemd-logind e uma instância do systemd por usuário(a) executando para cada usuário(a) titularizando uma sessão de login. Muitos pacotes do BLFS que listam o Systemd como uma dependência precisam da integração systemd-logind e (ou) de uma instância do systemd em execução por usuário(a).

[Atenção]

Atenção

Se atualizar a partir de uma versão anterior do "systemd" e um "initrd" for usado para inicialização do sistema, [então] você deveria gerar um novo "initrd" antes de reinicializar o sistema.

Conteúdo

Uma lista dos arquivos instalados, juntamente com as descrições curtas deles, pode ser encontrada em ../../../../lfs/view/12.2-systemd/chapter08/systemd.html#contents-systemd.

Listados abaixo estão os programas recém-instalados, juntamente com descrições curtas.

Aplicativos Instalados: homectl (opcional), systemd-cryptenroll (se cryptsetup-2.7.4 estiver instalado) e userdbctl (opcional)

Descrições Curtas

homectl

é uma ferramenta para criar, remover, mudar ou inspecionar um diretório "home" gerenciado por systemd-homed; observe que é inútil para os(as) usuários(as) clássicos(as) do "UNIX" e diretórios "home" que estamos usando no livro LFS/BLFS

systemd-cryptenroll

É usado para registrar ou remover um sistema da criptografia completa do disco, bem como configurar e consultar chaves privadas e chaves de recuperação

userdbctl

inspeciona usuários(as), grupos e associações de grupos

pam_systemd.so

é um módulo "PAM" usado para registrar sessões de usuário(a) com o gerenciador de "login" do systemd, systemd-logind