Introdução ao Avahi
O pacote Avahi é um sistema que
facilita a descoberta de serviços em uma rede de intercomunicação
local.
Esse pacote é conhecido por construir e funcionar corretamente
usando uma plataforma LFS 12.3.
Informação do Pacote
Transferências Adicionais
Dependências do "Avahi"
Exigidas
GLib-2.82.5 (GObject Introspection recomendado)
Recomendadas
GTK-3.24.48 e libdaemon-0.14
Opcionais
D-Bus Python-1.3.2, libevent-2.1.12,
Doxygen-1.13.2, GTK+-2
(obsoleto) e xmltoman (para
gerar documentação)
Instalação do Avahi
Deveria existir um(a) usuário(a) e um grupo dedicado(a) para
assumir o controle do processo de segundo plano "avahi-daemon" depois que ele for
iniciado. Emita os seguintes comandos como o(a) usuário(a)
"root
":
groupadd -fg 84 avahi &&
useradd -c "Proprietário(a) do Processo de Segundo Plano Avahi" -d /run/avahi-daemon -u 84 \
-g avahi -s /bin/false avahi
Também deveria existir um grupo de acesso privilegiado dedicado
para clientes do "Avahi". Emita o
seguinte comando como o(a) usuário(a) "root
":
groupadd -fg 86 netdev
Corrija uma regressão que resulta em uma condição de corrida quando
o "IPv6" está em uso e vários adaptadores de rede de
intercomunicação estiverem presentes no sistema:
patch -Np1 -i ../avahi-0.8-ipv6_race_condition_fix-1.patch
Corrija uma vulnerabilidade de segurança no "avahi-daemon":
sed -i '426a if (events & AVAHI_WATCH_HUP) { \
client_free(c); \
return; \
}' avahi-daemon/simple-protocol.c
Instale o "Avahi" executando os
seguintes comandos:
./configure \
--prefix=/usr \
--sysconfdir=/etc \
--localstatedir=/var \
--disable-static \
--disable-libevent \
--disable-mono \
--disable-monodoc \
--disable-python \
--disable-qt3 \
--disable-qt4 \
--disable-qt5 \
--enable-core-docs \
--with-distro=none \
--with-dbus-system-address='unix:path=/run/dbus/system_bus_socket' &&
make
Esse pacote não vem com uma suíte de teste.
Agora, como o(a) usuário(a) "root
":
make install
Explicações do Comando
--disable-static
: Essa
chave impede a instalação das versões estáticas das bibliotecas.
--disable-libevent
: Esse
parâmetro desabilita o uso da "libevent-2.1.12". Remova se você a
tiver instalado.
--disable-mono
: Esse
parâmetro desabilita as ligações "Mono".
--disable-monodoc
: Esse
parâmetro desabilita a documentação para as ligações "Mono".
--disable-python
: Esse
parâmetro desabilita os conjuntos de comandos sequenciais que
dependem do Python. Ele também
permite que uma instalação regular complete exitosamente.
--disable-qt3
: Esse
parâmetro desabilita a tentativa de construir as partes obsoletas
do "Qt3" do pacote.
--disable-qt4
: Esse
parâmetro desabilita a tentativa de construir as partes obsoletas
"Qt4Core" do pacote.
--enable-core-docs
: Esse
parâmetro habilita a construção da documentação.
--with-distro=none
: Existe
um conjunto de comandos sequenciais obsoletos de inicialização na
distribuição para o LFS. Essa opção o desabilita.
--with-dbus-system-address=
: Essa
opção evita que o pacote referencie o diretório obsoleto
/var/run
.
--disable-dbus
: Esse parâmetro
desabilita o uso do "D-Bus".
--disable-gtk
: Esse parâmetro
desabilita o uso do "GTK+2".
--disable-gtk3
: Esse parâmetro
desabilita o uso do "GTK+3".
--disable-qt5
: Esse parâmetro
desabilita o uso do "Qt5" e
permite construir sem ele.
--disable-libdaemon
: Esse parâmetro
desabilita o uso do "libdaemon".
Se você usar essa opção, [então] o "avahi-daemon" não será
construído.
--enable-tests
: Essa opção habilita a
construção de testes e exemplos.
--enable-compat-howl
: Essa opção
habilita a camada de compatibilidade para o "HOWL".
--enable-compat-libdns_sd
: Essa opção
habilita a camada de compatibilidade para o "libdns_sd".
Configurando o avahi
Conjunto de Comandos
Sequenciais de Inicialização
Para iniciar o processo de segundo plano avahi-daemon na inicialização,
habilite a unidade do systemd instalada anteriormente executando
o seguinte comando como o(a) usuário(a) root
:
systemctl enable avahi-daemon
Para iniciar o processo de segundo plano avahi-dnsconfd na
inicialização, habilite a unidade do systemd instalada
anteriormente executando o seguinte comando como o(a) usuário(a)
root
:
systemctl enable avahi-dnsconfd