Introduction à Avahi
Le paquet Avahi est un système qui
facilite la découverte des services dans un réseau local.
Note
Les versions de développement de BLFS peuvent ne pas arriver à
contruire ou à exécuter certains paquets correctement si LFS ou
des dépendances ont été mises à jour depuis la dernière version
stable des livres.
Informations sur le paquet
Téléchargements supplémentaires
Dépendances de Avahi
Requises
GLib-2.86.0 (GObject Introspection est
recommandé)
Recommandées
GTK-3.24.51 et libdaemon-0.14
Facultatives
D-Bus Python-1.4.0, libevent-2.1.12,
Doxygen-1.14.0, GTK+-2
(obsolète) et xmltoman (pour
générer la documentation)
Installation de Avahi
Il doit y avoir un utilisateur et un groupe dédiés pour prendre le
contrôle du démon avahi-daemon après son démarrage.
Tapez les commandes suivantes en tant qu'utilisateur root
:
groupadd -fg 84 avahi &&
useradd -c "Avahi Daemon Owner" -d /run/avahi-daemon -u 84 \
-g avahi -s /bin/false avahi
Il doit y avoir un groupe d'accès dédiés pour les clients
Avahi. Tapez les commandes
suivantes en tant qu'utilisateur root
:
groupadd -fg 86 netdev
Corrigez une régression qui provient d'une situation de compétition
lorsqu'IPv6 est utilisé et que plusieurs interfaces réseau sont
présentes sur le système :
patch -Np1 -i ../avahi-0.8-ipv6_race_condition_fix-1.patch
Corrigez un problème de sécurité dans avahi-daemon :
sed -i '426a if (events & AVAHI_WATCH_HUP) { \
client_free(c); \
return; \
}' avahi-daemon/simple-protocol.c
Installez Avahi en exécutant les
commandes suivantes :
./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
Ce paquet n'a pas de suite de tests.
Maintenant, en tant qu'utilisateur root
:
make install
Explication des commandes
--disable-static
: Ce
paramètre empêche l'installation des versions statiques des
bibliothèques.
--disable-libveent
:
ce paramètre désactive l'utilisation de libevent-2.1.12.
Supprimez-le si vous l'avez installé.
--disable-mono
: Ce
paramètre désactive la construction de l'intégration de
Mono.
--disable-monodoc
: Ce
paramètre désactive la documentation pour l'intégration de
Mono.
--disable-python
: Ce
paramètre désactive les scripts qui dépendent de Python. Il permet aussi à une installation
régulière (sans destdir) de réussir entièrement.
--disable-qt3
: Ce
paramètre désactive la construction obsolète des portions
Qt3 du paquet.
--disable-qt4
: Ce
paramètre désactive la construction obsolète des portions
Qt4Core du paquet.
--enable-core-docs
:
Ce paramètre active la construction de la documentation.
--with-distro=none
:
C'est un script de démarrage obsolète de la distribution LFS. Cette
option est le désactive.
--with-dbus-system-address=
:
cette option empêche le paquet de référencer le répertoire obsolète
/var/run
.
--disable-dbus
: Ce paramètre
évite l'utilisation de D-Bus.
--disable-gtk
: Ce paramètre évite
l'utilisation de GTK+2.
--disable-gtk3
: Ce paramètre
évite l'utilisation de GTK+3.
--disable-qt5
: ce paramètre
désactive l'utilisation de Qt5 et
permet de construire le paquet sans lui.
--disable-libdaemon
: Ce paramètre
évite l'utilisation de libdaemon.
Si vous utilisez cette option, avahi-daemon ne sera pas
construit.
--enable-tests
: Cette option
permet de construire les tests et les exemples.
--enable-compat-howl
: Cette
option active la couche de compatibilité avec HOWL.
--enable-compat-libdns_sd
: Cette
option active la compatibilité pour libdns_sd.
Configuration de avahi
Script de démarrage
Le démon avahi-daemon entrera en conflit
avec systemd-resolved dans la
configuration par défaut si les deux sont exécutés en même temps
sur un système car les deux agiront comme des résolveurs et des
répondeurs DNS multicast. Si vous devez exécuter le démon Avahi
(les auteurs de BLFS ne le recommandent pas à mois d'avoir
vraiment besoin de ses fonctionnalités), désactivez la prise en
charge du DNS multicast de ^systemd-resolved et activez
l'unité systemd précédemment installée en exécutant la commande
suivant en tant qu'utilisateur root
:
mkdir -pv /etc/systemd/resolved.conf.d &&
cat > /etc/systemd/resolved.conf.d/no-mdns.conf << EOF &&
[Resolve]
MulticastDNS=no
EOF
systemctl enable avahi-daemon
Pour démarrer le démon avahi-dnsconfd au démarrage,
activez l'unité systemd précédemment installée en exécutant la
commande suivante en tant qu'utilisateur root
(remarquez que la commande suivante
activera également implicitement avahi-daemon, donc si vous
l'exécutez, vous devez vous assurer que vous avez désactivé la
prise en charge du DNS multicast de systemd-resolved comme
mentionné plus haut) :
systemctl enable avahi-dnsconfd