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
Dependências do "systemd"
Recomendadas
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.
Linux-PAM-1.6.1 e Polkit-125 (tempo
de execução)
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
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
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
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
|