Systemd-254

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.0.

Informação do Pacote

  • Transferência (HTTP): https://github.com/systemd/systemd/archive/v254/systemd-254.tar.gz

  • Transferência (FTP):

  • Soma de verificação MD5 da transferência: 0d266e5361dc72097b6c18cfde1c0001

  • Tamanho da transferência: 14 MB

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

  • Tempo de construção estimado: 3,7 UPC (com testes usando quatro elementos de processamento da CPU)

Dependências do "systemd"

Recomendadas

[Nota]

Nota

Linux-PAM-1.5.3 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.5.3 é exigido para eles. Todos os pacotes no livro BLFS com dependência do systemd esperam que tenham sido reconstruídos com Linux-PAM-1.5.3.

Opcionais

btrfs-progs-6.3.3, cURL-8.2.1, cryptsetup-2.4.3, git-2.41.0, GnuTLS-3.8.1, iptables-1.8.9, libgcrypt-1.10.2, libidn2-2.3.4, libpwquality-1.4.5, libseccomp-2.5.4, libxkbcommon-1.5.0, make-ca-1.12, p11-kit-0.25.0, pcre2-10.42, qemu-8.1.0, qrencode-4.1.1, rsync-3.2.7, sphinx-7.1.2, Valgrind-3.21.0, zsh-5.9 (para as completações do zsh), AppArmor, audit-userspace, bash-completion, jekyll, kexec-tools, libbpf, libdw, libfido2, libmicrohttpd, lz4, 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.38 e lxml-4.9.3 (para construir o índice das páginas de manual do "systemd")

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     \
      -Ddefault-dnssec=no     \
      -Dfirstboot=false       \
      -Dinstall-tests=false   \
      -Dldconfig=false        \
      -Dman=auto              \
      -Dsysusers=false        \
      -Drpmmacrosdir=no       \
      -Dhomed=false           \
      -Duserdb=false          \
      -Dmode=release          \
      -Dpam=true              \
      -Dpamconfdir=/etc/pam.d \
      -Ddev-kvm-mode=0660     \
      -Ddocdir=/usr/share/doc/systemd-254 &&

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. Os testes chamados test-stat-util e test-netlink são conhecidos por falharem 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.

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

-Duserdb=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, [então] substitua "false" por "true" no comando "meson" acima.

-Dhomed=false: 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 ter cryptsetup-2.4.3 e libpwquality-1.4.5 instalados e, em seguida, mude "false" para "true" no comando "meson" 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"
# Começo da adição do "Systemd"

session  required    pam_loginuid.so
session  optional    pam_systemd.so

# Fim da adição do "Systemd"
EOF

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

# Fim "/etc/pam.d/systemd-user"
EOF
[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.0-systemd/chapter08/systemd.html#contents-systemd.

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

Aplicativos Instalados: homectl (opcional), systemd-cryptenroll (se cryptsetup-2.4.3 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