dbus-1.12.16
Introduction à D-Bus
D-Bus est un système de bus de
messages, 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 par session utilisateur
(pour les besoins IPC généraux des applications de l'utilisateur).
Le bus de messages est aussi construit au dessus d'un environnement
de passage de messages biunivoques, 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 correctement sur une
plateforme LFS-9.0.
Informations sur le paquet
-
Téléchargement (HTTP) :
https://dbus.freedesktop.org/releases/dbus/dbus-1.12.16.tar.gz
-
Téléchargement (FTP) :
-
Somme de contrôle MD5 du téléchargement :
2dbeae80dfc9e3632320c6a53d5e8890
-
Taille du téléchargement : 2.0 Mo
-
Estimation de l'espace disque requis : 21 Mo (plus 17 Mo
pour les tests)
-
Estimation du temps de construction : 0.3 SBU (pus 8.5
SBU pour les tests)
Dépendances de D-Bus
Recommandées
Bibliothèques Xorg (pour le programme
dubs-launch)
et elogind-241.3 (il y a une dépendance
circulaire. Construisez d'abord sans cette dépendance, puis de
nouveau après l'installation des deux paquets)
Facultatives
Pour les tests : dbus-glib-0.110, D-Bus
Python-1.2.8, PyGObject-3.32.2 et Valgrind-3.15.0 ;
pour la documentation : Doxygen-1.8.16, xmlto-0.0.28,
Ducktype et
Yelp Tools
Notes utilisateur : http://wiki.linuxfromscratch.org/blfs/wiki/dbus
Installation de D-Bus
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 \
--localstatedir=/var \
--enable-user-session \
--disable-doxygen-docs \
--disable-xml-docs \
--disable-static \
--with-systemduserunitdir=no \
--with-systemdsystemunitdir=no \
--docdir=/usr/share/doc/dbus-1.12.16 \
--with-console-auth-dir=/run/console \
--with-system-pid-file=/run/dbus/pid \
--with-system-socket=/run/dbus/system_bus_socket &&
make
Voir ci-dessous pour les instructions de test.
Maintenant, en tant qu'utilisateur root
:
make install
La bibliothèque partagée doit être déplacée vers /lib
et le fichier .so
dans /usr/lib
devra alors être recréé. Lancez la commande suivante en tant
qu'utilisateur root
:
mv -v /usr/lib/libdbus-1.so.* /lib &&
ln -sfv ../../lib/$(readlink /usr/lib/libdbus-1.so) /usr/lib/libdbus-1.so
Si vous utilisez une installation DESTDIR, dbus-daemon-launch-helper doit
être corrigé. Tapez en tant qu'utilisateur root
:
chown -v root:messagebus /usr/libexec/dbus-daemon-launch-helper &&
chmod -v 4750 /usr/libexec/dbus-daemon-launch-helper
Si vous construisez toujours votre système en chroot ou que vous
n'avez pas encore lancé le démon, mais que vous souhaitez compiler
certains paquets dépendant de D-Bus, générez l'UUID D-Bus afin d'éviter les avertissements lors de
la compilation de certains paquets à l'aide de la commande suivante
en tant qu'utilisateur root
:
dbus-uuidgen --ensure
Si vous utilisez elogind-241.3, créez un lien symbolique vers le
fichier /var/lib/dbus/machine-id
:
ln -sv /var/lib/dbus/machine-id /etc
Les tests de dbus ne peuvent pas être lancés avant l'installation
de dbus-glib-0.110. Ils doivent être lancés en
tant qu'utilisateur non privilégié depuis une session locale avec
une adresse de bus. Pour lancer la suite de tests standard, lancez
make check.
Si vous voulez lancer les tests unitaires, des paramètres
supplémentaires doivent être passés à configure qui exposent des
fonctionnalités supplémentaires dans les fichiers binaires mais ne
sont pas destinées à être utilisées dans une construction de
production de D-Bus. Si vous
souhaitez lancer les tests, tapez les commandes suivantes (pour les
tests, vous n'avez pas besoin de construire la doc) :
make distclean &&
./configure --enable-tests \
--enable-asserts \
--disable-doxygen-docs \
--disable-xml-docs &&
make &&
make check
Le test test-bus.sh
est connu pour échouer. Il y a un signalement indiquant que les
tests peuvent échouer s'ils sont lancés depuis un shell Midnight
Commander. Il se peut vous ayez des messages d'erreur de
dépassement de mémoire lors des tests. Ils sont normaux et vous
pouvez sans problème les ignorer.
Explication des commandes
--disable-doxygen-docs
: Ce
paramètre désactive la construction de la documentation doxygen et
son installation, si vous avez installé doxygen. Si doxygen est installé et que vous souhaitez
construire et l'installer, effacez ce paramètre.
--disable-xml-docs
:
Ce paramètre désactive la construction et l'installation de la
documentation html si vous avez installé xmlto. Supprimez-le, si xmlto est installé et que vous souhaitiez la
construire et l'installer.
--disable-static
: Ce
paramètre empêche l'installation des versions statiques des
bibliothèques.
--enable-user-session
: Ce
paramètre active les sessions utilisateurs DBus avec elogind.
--with-systemd{user,system}unitdir=
:
Ce paramètre désactive l'installation des unités systemd sur les
systèmes basés sur elogind.
--with-console-auth-dir=/run/console/
:
ce paramètre spécifie le répertoire dont il faut vérifier
l'appartenance à la console.
--with-system-pid-file=/run/dbus/pid
:
Ce paramètre spécifie l'endroit pour le fichier PID.
--with-system-socket=/run/dbus/system_bus_socket
:
Ce paramètre spécifie l'emplacement du socket du bus système.
--enable-tests
:
Construit des parties supplémentaires du code pour tous les tests.
N'utilisez pas ce paramètre pour une construction de production.
--enable-embedded-tests
:
Construit des parties supplémentaires du code pour supporter
seulement les tests unitaires. N'utilisez pas ce paramètres pour
une construction de production.
--enable-asserts
:
Active le code de débogage pour exécuter des déclarations
d'éléments supposées normalement vrais. 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 bons
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.
Configuration de D-Bus
Fichiers de
configuration
/etc/dbus-1/session.conf
,
/etc/dbus-1/system.conf
et
/etc/dbus-1/system.d/*
Informations sur la 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
ou /etc/dbus-1/system-local.conf
et effectuer les
changements désirés dans 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
Démon de Session
D-Bus
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-20190609.
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.
-
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
.
-
L'exemple montré précédemment utilise dbus-launch pour
spécifier un programme à exécuter. Ceci a le bénéfice
(quand on utilise également le paramètre --exit-with-session
) de
stopper le démon de la session quand le programme spécifié
est stoppé. Vous pouvez également démarrer le démon de la
session dans vos scripts de démarrage du système ou
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-launch, dbus-monitor, dbus-run-session, dbus-send,
dbus-test-tool, dbus-update-activation-environment et
dbus-uuidgen
Bibliothèque installée:
libdbus-1.so
Répertoires installés:
/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.12.16, et /var/{lib,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-run-session
|
démarre un processus comme une nouvelle session
D-Bus.
|
dbus-send
|
est utilisé pour envoyer un message à un bus de messages
D-Bus.
|
dbus-test-tool
|
est un générateur de trafic D-Bus et un outil de tests ;
c'est un outil multi-usage pour le débogage et le
profilage de D-Bus.
|
dbus-update-activation-environment
|
est utilisé pour mettre à jour l'environnement utilisé
pour les services de session de D-Bus ; il met à jour la liste
des variables d'environnement utilisées par dbus-daemon --session
quand il active les services de session sans utiliser
systemd.
|
dbus-uuidgen
|
est utilisé pour générer ou lire un ID universellement
unique.
|
libdbus-1.so
|
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 2019-08-17 22:49:15 +0000