Systemd-255
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.1.
Informação do Pacote
-
Transferência (HTTP):
https://github.com/systemd/systemd/archive/v255/systemd-255.tar.gz
-
Transferência (FTP):
-
Soma de verificação MD5 da transferência:
521cda27409a9edf0370c128fae3e690
-
Tamanho da transferência: 15 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)
Transferências Adicionais
Dependências do "systemd"
Recomendadas
Nota
Linux-PAM-1.6.0 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.0 é 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.0.
Linux-PAM-1.6.0 e Polkit-124 (tempo
de execução)
Opcionais
btrfs-progs-6.7.1, cURL-8.6.0,
cryptsetup-2.7.0, git-2.44.0, GnuTLS-3.8.3,
iptables-1.8.10, libgcrypt-1.10.3,
libidn2-2.3.7, libpwquality-1.4.5, libseccomp-2.5.5,
libxkbcommon-1.6.0, make-ca-1.13,
p11-kit-0.25.3, pcre2-10.42, qemu-8.2.1,
qrencode-4.1.1, rsync-3.2.7,
sphinx-7.2.6, Valgrind-3.22.0,
zsh-5.9 (para as completações do zsh), AppArmor, audit-userspace,
bash-completion,
jekyll, kexec-tools,
libbpf, libdw, libfido2,
libmicrohttpd,
lz4,
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.39 e lxml-4.9.4 (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
Agora corrija uma vulnerabilidade de segurança na verificação
DNSSEC do systemd-resolved e um defeito que
quebra a execução de systemd-analyze
verify em uma unidade instanciada do systemd:
patch -Np1 -i ../systemd-255-upstream_fixes-1.patch
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=disabled \
-Duserdb=false \
-Dmode=release \
-Dpam=enabled \
-Dpamconfdir=/etc/pam.d \
-Ddev-kvm-mode=0660 \
-Dnobody-group=nogroup \
-Dsysupdate=disabled \
-Dukify=disabled \
-Ddocdir=/usr/share/doc/systemd-255 &&
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=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.0 e libpwquality-1.4.5 instalados e, em
seguida, mude “disabled” para “enabled” no comando
meson setup acima.
-Dukify=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.14.5
já tenha sido reconstruído com suporte Linux-PAM-1.6.0 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.1-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.7.0 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
|