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
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.
Linux-PAM-1.5.3 e Polkit-123 (tempo
de execução)
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
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
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
|