D-BUS-1.4.16

Introduction à D-BUS

D-BUS est un système bus de message, une manière simple pour les applications de parler entre elles. D-BUS fournit un démon système (pour des événements tels que « nouveau périphérique ajouté » ou « queue de l'imprimante modifiée ») et un démon aligné sur la session de l'utilisateur (pour les besoins IPC généraux des applications de l'utilisateur). Le bus de message est aussi construit au sommet d'un environnement de passagede message entre éléments général, qui peut être utilisé par deux applications pour communiquer directement (sans passer par le démon de bus de message).

Ce paquet est connu pour se construire et fonctionner correctement sur une plateforme LFS-7.0.

Informations sur le paquet

Dépendances de D-BUS

Requises

expat-2.0.1 (préferé) ou libxml2-2.7.8

Facultatives

Xorg Libraries, D-Bus GLib Bindings-0.98 (pour lancer les tests), et Doxygen-1.7.5 (pour générer la documentation API)

Notez que le script configure regardera dans xmlto-0.0.23 mais il ne fait rien car la documentation XML/HTML est déjà incluse dans l'arborescence des sources.

Notes utilisateur : http://wiki.linuxfromscratch.org/blfs/wiki/dbus

Configuration du noyau

Assurez-vous que l'option suivante est activée dans la configuration du noyau et recompilez le noyau si nécessaire :

General Setup
  System V IPC

Installation de D-BUS

En tant qu'utilisateur root, créez un utilisateur et un groupe systèmes pour gérer l'activité du bus de messages système :

groupadd -g 18 messagebus &&
useradd -c "D-BUS Message Daemon User" -d /dev/null \
        -u 18 -g messagebus -s /bin/false messagebus

Installez D-BUS en lançant les commandes suivantes (vous pouvez d'abord souhaiter observer la sortie de ./configure --help et ajouter des paramètres désirés à la commande configure affichée ci-dessous) :

./configure --prefix=/usr                   \
            --sysconfdir=/etc               \
            --libexecdir=/usr/lib/dbus-1.0  \
            --localstatedir=/var &&
make

Voir ci-dessous pour les instructions de test.

Maintenant, en tant qu'utilisateur root :

make install &&
mv -v /usr/share/doc/dbus /usr/share/doc/dbus-1.4.16

Les tests dbus ne peuvent pas être lancé après que D-Bus GLib Bindings-0.98 est été installé. Les tests requierent de passer des paramètres supplémentaires à configure et d'avoir des fonctionnalités supplémentaires dans les fichiers binaires. Ces interfaces ne sont pas destinés à être utilisées dans une construction de production de D-BUS. Si vous souhaitez lancer la suite de tests, tapez les commandes suivantes :

make distclean &&
./configure --enable-tests --enable-asserts &&
make &&
make check &&
make distclean

Notez qu'il y a un rapport indiquant que les tests peuvent échouer s'ils sont lancés depuis un shell Midnight Commander.

Explication des commandes

--libexecdir=/usr/lib/dbus-1.0  : Ceci installera des binaires conçus pour n'être utilisés qu'en interne par D-BUS et le répertoire dbus-1 dans /usr/lib/dbus-1.0 au lieu de /usr/libexec.

--localstatedir=/var : Il résulte de ce paramètre que le fichier PID du démon, le socket du bus système et le fichier uuid de la machine, seront créés dans le répertoire /var plutôt que dans le répertoire /usr/var.

--enable-tests : Construit des parties supplémentaires du code pour supporter le test. Configure se finira avec un avertissement NOTE concernant cela.

--enable-asserts : Active le code de débogage pour exécuter des déclarations d'éléments supposées normalement vraies. Cela empêche un avertissement selon lequel '--enable-tests' n'est utile en lui-même que pour le profilage et il pourrait ne pas donner de bon résultats pour tous les tests, mais il ajoute sa propre remarque selon laquelle cela ne devrait pas être utilisé dans une construction de production.

--disable-static : Empêche les bibliothèques statique de se construire et de s'installer.

Configuration de dbus

Fichiers de configuration

/etc/dbus-1/session.conf, /etc/dbus-1/system.conf et /etc/dbus-1/system.d/*

Informations de configuration

On ne devrait probablement pas modifier les fichiers de configuration listés ci-dessus. Si des modifications sont requises, vous devriez créer /etc/dbus-1/session-local.conf et/ou /etc/dbus-1/system-local.conf et faire les changements désirés à ces fichiers.

Si un paquet installe un fichier .service de D-Bus hors du répertoire /usr/share/dbus-1/services standard, vous devriez ajouter ce répertoire à la configuration de la session locale. Par exemple, /usr/local/share/dbus-1/services peut être ajouté en effectuant les commandes suivantes en tant qu'utilisateur 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

Script de démarrage

Pour démarrer automatiquement dbus-daemon quand on redémarre le système, installez le script de démarrage /etc/rc.d/init.d/dbus depuis le paquet blfs-bootscripts-20111226.

make install-dbus

Remarquez que ce script de démarrage ne démarre que démon D-BUS de tout le système. Chaque utilisateur ayant besoin d'un accès aux services de D-BUS devront exécuter en plus un démon de session. Il y a beaucoup de méthodes utilisables pour démarrer un démon de session en utilisant la commande dbus-launch. Revoyez la page de man de dbus-launch pour des détails sur les paramètres et les options disponibles. Voici quelques suggestions et exemples :

  • Ajouter dbus-launch à la ligne dans le fichier ~/.xinitrc qui démarre votre environnement graphique comme décrit au la section intitulée « Configuration des paquets du cœur de GNOME ».

  • Si vous utilisez xdm ou un autre gestionnaire d'affichage qui appelle le fichier ~/.xsession, vous pouvez ajouter dbus-launch à la ligne dans votre fichier ~/.xsession qui démarre votre environnement graphique. La syntaxe ressemblerait à celle de l'exemple dans le fichier ~/.xinitrc.

  • Si vous utilisez gdm ou un autre gestionnaire d'affichage qui utilise des fichiers personnalisés pour ouvrir des sessions, utilisez l'exemple dans la section intitulée « Informations de configuration » des instructions de GDM pour créer un fichier contenant dbus-launch.

  • Les exemples décrits précédemment utilisent dbus-launch pour dire à un programme de se lancer. Ceci a l'avantage (lorsqu'on utilise aussi le paramètre --exit-with-session) d'arrêter le démon de session quand le programme spécifié est arrêté. Vous pouvez aussi démarrer le démon de session dans votre système ou par vos scripts de démarrage personnels en ajoutant les lignes suivantes :

    # Start the D-BUS session daemon
    eval `dbus-launch`
    export DBUS_SESSION_BUS_ADDRESS
    

    Cette méthode n'arrêtera pas le démon de session quand vous quittez votre shell, donc vous devriez ajouter la ligne suivante à votre fichier ~/.bash_logout :

    # Kill the D-BUS session daemon
    kill $DBUS_SESSION_BUS_PID
    
  • Une astuce a été écrite offrant des moyens de démarrer des scripts utilisant le gestionnaire de sessions KDM de KDE. Les concepts de cette astuce pourraient être éventuellement utilisés aussi avec d'autres gestionnaires de session. L'astuce se trouve sur http://www.linuxfromscratch.org/hints/downloads/files/execute-session-scripts-using-kdm.txt.

Contenu

Programmes installés: dbus-cleanup-sockets, dbus-daemon, dbus-daemon-launch-helper, dbus-launch, dbus-monitor, dbus-send et dbus-uuidgen
Bibliothèque installée: libdbus-1.{so,a}
Répertoires installés: /etc/dbus-1/{session.d,system.d}, /usr/{include/dbus-1.0/dbus, lib/{dbus-1.0/include/dbus,dbus/dbus-1},share/dbus-1/{services, system-services}}, /var/{lib/dbus,run/dbus}

Descriptions courtes

dbus-cleanup-sockets

nettoie les sockets superflus dans un répertoire.

dbus-daemon

est le démon de bus de messages D-BUS.

dbus-launch

est utilisé pour démarrer dbus-daemon depuis un script shell. Il est en principe appelé par des scripts de connexion d'un utilisateur.

dbus-monitor

est utilisé pour surveiller les messages à travers un bus de messages D-BUS.

dbus-send

est utilisé pour envoyer un message à un bus de messages D-BUS.

dbus-uuidgen

est utilisé pour générer ou lire un ID gunique universel.

libdbus-1.{so,a}

contient les fonctions de l'API utilisées par le démon de messages D-BUS. D-BUS est d'abord une bibliothèque qui fournit une communication directe entre deux applications ; dbus-daemon est une application qui utilise cette bibliothèque pour implémenter un démon de bus de messages.

Last updated on 2011-12-16 20:54:18 +0100