dbus-1.14.6
Introdução ao "D-Bus"
D-Bus é um sistema de barramento
de mensagens, uma maneira simples para os aplicativos se
comunicarem entre si. D-Bus
fornece um processo de segundo plano de sistema (para eventos como
“novo dispositivo de
hardware adicionado” ou “fila de impressora
mudou”) e um processo de segundo plano de sessão de
login por usuário(a) (para necessidades gerais de "IPC" entre
aplicativos de usuário(a)). Além disso, o barramento de mensagens é
construído sobre uma estrutura geral de passagem de mensagens
um-para-um, a qual pode ser usada por quaisquer dois aplicativos
para se comunicarem diretamente (sem passar pelo processo de
segundo plano do barramento de mensagens).
Esse pacote é conhecido por construir e funcionar adequadamente
usando uma plataforma LFS 11.3.
Informação do Pacote
-
Transferência (HTTP):
https://dbus.freedesktop.org/releases/dbus/dbus-1.14.6.tar.xz
-
Transferência (FTP):
-
Soma de verificação MD5 da transferência:
e809d7aa905ad82adeaf1d59db5445b1
-
Tamanho da transferência: 1,3 MB
-
Espaço em disco estimado exigido: 23 MB (adicionar 20 MB para
os testes)
-
Tempo de construção estimado: 0,2 UPC (adicionar 1,7 UPC para
os testes)
Dependências do "D-Bus"
Recomendadas
Bibliotecas do Xorg (para o aplicativo
dbus-launch)
e elogind-246.10 (Essas são dependências
circulares. Primeiro construa sem eles e, então, novamente depois
que os ambos os pacotes sejam instalados).
Opcionais
Para os testes: D-Bus
Python-1.3.2, PyGObject-3.42.2 e Valgrind-3.20.0; para
documentação: Doxygen-1.9.6, xmlto-0.0.28,
Ducktype e
Yelp Tools
Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/dbus
Instalação do "D-Bus"
Instale o D-Bus executando os
seguintes comandos (você possivelmente revise a saída gerada a
partir de ./configure
--help primeiro e adicione quaisquer parâmetros
desejados ao comando configure mostrado abaixo):
./configure --prefix=/usr \
--sysconfdir=/etc \
--localstatedir=/var \
--runstatedir=/run \
--enable-user-session \
--disable-doxygen-docs \
--disable-xml-docs \
--disable-static \
--with-systemduserunitdir=no \
--with-systemdsystemunitdir=no \
--docdir=/usr/share/doc/dbus-1.14.6 \
--with-system-socket=/run/dbus/system_bus_socket &&
make
Veja-se abaixo para instruções de teste.
Agora, como o(a) usuário(a) root
:
make install
Se você estiver usando uma instalação "DESTDIR", [então] o
dbus-daemon-launch-helper precisa
ser corrigido posteriormente. Emita, como usuário(a) root
:
chown -v root:messagebus /usr/libexec/dbus-daemon-launch-helper &&
chmod -v 4750 /usr/libexec/dbus-daemon-launch-helper
Se você ainda estiver construindo seu sistema em "chroot" ou ainda
não iniciou o processo de segundo plano, mas deseja compilar alguns
pacotes que exigem o D-Bus,
[então] gere o "UUID" do D-Bus,
para evitar avisos ao compilar alguns pacotes, com o seguinte
comando como o(a) usuário(a) root
:
dbus-uuidgen --ensure
Se usar elogind-246.10, [então] crie um link simbólico
para o arquivo /var/lib/dbus/machine-id
:
ln -sfv /var/lib/dbus/machine-id /etc
Os testes "dbus" não podem ser executados até que D-Bus Python-1.3.2 e PyGObject-3.42.2 tenham sido instalados.
Eles precisam ser executados como um(a) usuário(a) sem privilégios
a partir de uma sessão local com endereço de barramento. Para
executar os testes padrão, emita make
check.
Se você deseja executar os testes de regressão de unidade, [então]
o "configure" exige parâmetros adicionais os quais expõem
funcionalidades adicionais nos binários que não se destinam a serem
usadas em uma construção de produção do D-Bus. Se você gostaria de executar os testes,
[então] emita os seguintes comandos (para os testes, você não
precisa construir os documentos):
make distclean &&
PYTHON=python3 ./configure --enable-tests \
--enable-asserts \
--disable-doxygen-docs \
--disable-xml-docs &&
make &&
make check
Existiram informes de que os testes possivelmente falhem se
executados dentro de um "shell" do "Midnight Commander". Você
possivelmente receba mensagens de erro de falta de memória ao
executar os testes. Elas são normais e podem ser seguramente
ignoradas.
Explicações do Comando
--disable-doxygen-docs
:
Essa chave desabilita a construção e instalação da documentação do
"doxygen", se você tiver o doxygen
instalado. Se doxygen estiver
instalado e você desejar construí-la, [então] remova esse
parâmetro.
--disable-xml-docs
: Essa
chave desabilita a construção e instalação da documentação "HTML",
se você tiver o xmlto instalado.
Se xmlto estiver instalado e você
desejar construí-la, [então] remova esse parâmetro.
--disable-static
: Essa
chave impede a instalação das versões estáticas das bibliotecas.
--enable-user-session
: Esse
parâmetro habilita sessões do "DBus" por usuário(a) com
elogind.
--with-systemd{user,system}unitdir=no
:
Essas chaves desabilitam a instalação de unidades do "systemd" em
sistemas baseados em "elogind".
--with-system-pid-file=/run/dbus/pid
:
Esse parâmetro especifica o local do arquivo "PID".
--with-system-socket=/run/dbus/system_bus_socket
:
Esse parâmetro especifica o local do soquete do barramento do
sistema.
--enable-tests
: Constrói
partes extras do código para suportar todos os testes. Não use em
uma construção de produção.
--enable-embedded-tests
: Constrói
partes extras do código para suportar somente testes de unidade.
Não use em uma construção de produção.
--enable-asserts
: Habilita
código de depuração para executar asserções para declarações
normalmente presumidas serem verdadeiras. Isso evita um aviso que
'--enable-tests
' por si só
é útil somente para perfilamento e pode não fornecer resultados
verdadeiros para todos os testes, mas adiciona a própria OBSERVAÇÃO
dele de que isso não deveria ser usado em uma construção de
produção.
Configurando o "D-Bus"
Arquivos de
Configuração
/etc/dbus-1/session.conf
,
/etc/dbus-1/system.conf
e
/etc/dbus-1/system.d/*
Informação de Configuração
Os arquivos de configuração listados acima provavelmente não
deveriam ser modificados. Se mudanças forem necessárias, [então]
você deveria criar /etc/dbus-1/session-local.conf
e(ou)
/etc/dbus-1/system-local.conf
e
fazer quaisquer mudanças desejadas nesses arquivos.
Se algum pacote instalar um arquivo .service
do D-Bus fora do diretório padrão /usr/share/dbus-1/services
, [então] esse
diretório deveria ser adicionado à configuração local da sessão.
Por exemplo, /usr/local/share/dbus-1/services
pode ser
adicionado realizando os seguintes comandos como o(a) usuário(a)
root
:
cat > /etc/dbus-1/session-local.conf << "EOF"
<!DOCTYPE busconfig PUBLIC
"-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
"http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
<busconfig>
<!-- Search for .service files in /usr/local -->
<servicedir>/usr/local/share/dbus-1/services</servicedir>
</busconfig>
EOF
Processo de Segundo
Plano de Sessão do "D-Bus"
Para iniciar automaticamente o dbus-daemon quando o sistema
for reinicializado, instale o "script" de inicialização
/etc/rc.d/init.d/dbus
a partir do
pacote blfs-bootscripts-20230101.
make install-dbus
Observe que esse "script" de inicialização somente inicia o
processo de segundo plano D-Bus
abrangente ao sistema. Cada usuário(a) solicitante de acesso aos
serviços do D-Bus também
precisará executar um processo de segundo plano de sessão.
Existem muitos métodos que você pode usar para iniciar um
processo de segundo plano de sessão usando o comando dbus-launch. Revise a página de
manual do dbus-launch para detalhes a
respeito dos parâmetros e opções disponíveis. Aqui estão algumas
sugestões e exemplos:
-
Adicione dbus-launch à linha no
arquivo ~/.xinitrc
que inicia
seu ambiente gráfico de área de trabalho.
-
Se você usar gdm ou algum outro
gerenciador de tela que chame o arquivo ~/.xsession
, [então] você pode adicionar
dbus-launch à
linha no seu arquivo ~/.xsession
que inicia seu ambiente
gráfico de área de trabalho. A sintaxe seria semelhante ao
exemplo no arquivo ~/.xinitrc
.
-
Os exemplos mostrados anteriormente usam dbus-launch para
especificar um aplicativo a ser executado. Isso tem a
vantagem (ao usar também o parâmetro --exit-with-x11
) de parar o
processo de segundo plano de sessão quando o aplicativo
especificado for interrompido. Você também pode iniciar o
processo de segundo plano de sessão em seus "scripts" de
inicialização de sistema ou os pessoais, adicionando as
seguintes linhas:
# Inicia o processo de segundo plano de sessão do "D-Bus"
eval `dbus-launch`
export DBUS_SESSION_BUS_ADDRESS
Esse método não parará o processo de segundo plano de
sessão quando você sair do seu "shell"; portanto você
deveria adicionar a seguinte linha ao seu arquivo
~/.bash_logout
:
# Mata o processo de segundo plano de sessão do "D-Bus"
kill $DBUS_SESSION_BUS_PID
Conteúdo
Aplicativos Instalados:
dbus-cleanup-sockets, dbus-daemon,
dbus-launch, dbus-monitor, dbus-run-session, dbus-send,
dbus-test-tool, dbus-update-activation-environment e
dbus-uuidgen
Biblioteca Instalada:
libdbus-1.so
Diretórios Instalados:
/etc/dbus-1, /usr/{include,lib}/dbus-1.0,
/usr/lib/cmake/DBus1, /usr/share/dbus-1, /usr/share/xml/dbus-1,
/usr/share/doc/dbus-1.14.6 e /var/{lib,run}/dbus
Descrições Curtas
dbus-cleanup-sockets
|
é usado para limpar soquetes restantes em um diretório
|
dbus-daemon
|
é o processo de segundo plano de barramento de mensagens
do D-Bus
|
dbus-launch
|
é usado para iniciar o dbus-daemon a partir de
um "script" do "shell". Normalmente seria chamado a
partir dos "scripts" de login de um(a) usuário(a)
|
dbus-monitor
|
é usado para monitorar mensagens que passam por um
barramento de mensagens D-Bus
|
dbus-run-session
|
inicia um processo como uma nova sessão do D-Bus
|
dbus-send
|
é usado para enviar uma mensagem para um barramento de
mensagens do D-Bus
|
dbus-test-tool
|
é um gerador de tráfego e ferramenta de teste do
D-Bus; é uma ferramenta
multifuncional para depuração e perfilamento do
D-Bus
|
dbus-update-activation-environment
|
é usado para atualizar o ambiente usado para serviços de
sessão do D-Bus;
atualiza a lista de variáveis de ambiente usadas por
dbus-daemon
--session quando ativa serviços de sessão
sem usar o "systemd"
|
dbus-uuidgen
|
é usado para gerar um "ID" universalmente único
|
libdbus-1.so
|
contém as funções da "API" usadas pelo processo de
segundo plano de mensagens do D-Bus. D-Bus é primeiro uma biblioteca que
fornece comunicação "um para um" entre quaisquer duas
aplicações; dbus-daemon é um
aplicativo que usa essa biblioteca para implementar um
processo de segundo plano de barramento de mensagens
|