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