dbus-1.14.10

Introduksjon til D-Bus

D-Bus er et meldingsbusssystem, en enkel måte for applikasjoner å snakke med hverandre. D-Bus leverer både en systemnisse (for hendelser som f.eks «ny maskinvareenhet lagt til» eller «skriver kø endret») og en per-bruker-pålogging-sesjon nisse (for generell IPC-behov blant brukerapplikasjoner). Dessuten er meldingsbussen bygget på toppen av et generelt rammeverk for en-til-en meldingsoverføring, som kan brukes av to applikasjoner for å kommunisere direkte (uten å gå gjennom meldingsbuss-demon).

[Notat]

Notat

Utviklingsversjoner av BLFS kan ikke bygge eller kjøre noen pakker riktig hvis LFS eller avhengigheter har blitt oppdatert siden den siste stabile versjonene av bøkene.

Pakkeinformasjon

D-Bus Avhengigheter

Anbefalt

Valgfri

For testene: D-Bus Python-1.3.2, PyGObject-3.50.0, og Valgrind-3.24.0; for dokumentasjon: Doxygen-1.12.0, xmlto-0.0.29, Ducktype, og Yelp Tools

Installasjon av D-Bus

Installer D-Bus ved å kjøre følgende kommandoer (det kan være lurt å se gjennom utdataene fra ./configure --help først og legg til ønskede parametere til configure kommandoen vist nedenfor):

./configure --prefix=/usr                        \
            --sysconfdir=/etc                    \
            --localstatedir=/var                 \
            --runstatedir=/run                   \
            --disable-doxygen-docs               \
            --disable-xml-docs                   \
            --disable-static                     \
            --with-systemduserunitdir=no         \
            --with-systemdsystemunitdir=no       \
            --docdir=/usr/share/doc/dbus-1.14.10  \
            --with-system-socket=/run/dbus/system_bus_socket &&
make

Se nedenfor for testinstruksjoner.

Nå, som root bruker:

make install

Hvis du bruker en DESTDIR installasjon, dbus-daemon-launch-helper må fikses etterpå. Utsted, som root bruker:

chown -v root:messagebus /usr/libexec/dbus-daemon-launch-helper &&
chmod -v      4750       /usr/libexec/dbus-daemon-launch-helper

Hvis du fortsatt bygger systemet ditt i chroot eller du ikke har startet nissen ennå, men du vil kompilere noen pakker som krever D-Bus, generer D-Bus UUID for å unngå advarsler ved kompilering av noen pakker med følgende kommando som root bruker:

dbus-uuidgen --ensure

Hvis du bruker elogind-255.5, opprette en symbolkobling til /var/lib/dbus/machine-id filen:

ln -sfv /var/lib/dbus/machine-id /etc

Mange tester er deaktivert med mindre både D-Bus Python-1.3.2 og PyGObject-3.50.0 har blitt installert. Det må kjøres som en uprivilegert bruker fra en lokal økt med bussadresse. For å kjøre standard tester utsted make check.

Hvis du vil kjøre enhetsregresjonstestene, krever konfigureringen tilleggsparametere som viser tilleggsfunksjonalitet i binærfiler som ikke er ment å brukes i en produksjonsbygning av D-Bus. Hvis du ønsker å kjøre testene, utsted følgende kommandoer (for testene trenger du ikke å bygge dokumenter):

make distclean                                    &&
PYTHON=python3 ./configure --enable-tests         \
                           --enable-asserts       \
                           --disable-doxygen-docs \
                           --disable-xml-docs     &&
make                                              &&
make check

En test, test-autolaunch, er kjent for å mislykkes. Det har vært rapporter om at testene kan mislykkes hvis de kjøres i et Midnight Commander skall. Du kan få feilmeldinger om at minnet er tomt når kjører testene. Disse er normale og kan trygt ignoreres.

Parameterforklaringer

--disable-doxygen-docs: Denne bryteren deaktiverer at doxygen dokumentasjon bygges og installeres, hvis du har doxygen installert. Hvis doxygen er installert, og du ønsker å bygge dem, fjern denne parameteren.

--disable-xml-docs: Denne bryteren deaktiverer at html dokumentasjon bygges og installeres, hvis du har xmlto installert. Hvis xmlto er installert, og du ønsker å bygge dem, fjern denne parameteren.

--disable-static: Denne bryteren forhindrer installasjon av statiske versjoner av bibliotekene.

--with-systemd{user,system}unitdir=no: Disse brytere deaktiverer installasjon av systemenheter på elogind baserte systemer.

--with-system-socket=/run/dbus/system_bus_socket: Denne parameteren spesifiserer plasseringen av systembuss socket.

--enable-tests: Bygger ekstra deler av koden for å støtte alle tester. Ikke bruk på en produksjonsbygning.

--enable-embedded-tests: Bygger ekstra deler av koden for kun å støtte enhetstester. Ikke bruk på en produksjonsbygning.

--enable-asserts: Gjør det mulig å kjøre feilsøkingskode påstander for utsagn som normalt antas å være sanne. Dette forhindrer advarsel om det '--enable-tests' på egen hånd er bare nyttig for profilering og gir kanskje ikke sanne resultater for alle tester, men legger til sin egen MERK at dette ikke skal brukes i et produksjonsbygg.

Konfigurere D-Bus

Konfigurasjonsfiler

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

Konfigurasjonsinformasjon

Konfigurasjonsfilene oppført ovenfor bør sannsynligvis ikke bli modifisert. Hvis det kreves endringer, bør du opprette /etc/dbus-1/session-local.conf og/eller /etc/dbus-1/system-local.conf og lage eventuelle ønskede endringer i disse filene.

Hvis noen pakker installerer en D-Bus .service fil utenfor standard /usr/share/dbus-1/services mappen, den mappen skal legges til den lokale sesjonskonfigurasjonen. For eksempel, /usr/local/share/dbus-1/services kan legges til ved å utføre følgende kommandoer som root bruker:

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-Bus Øktnisse

For å starte dbus-daemon automatisk når systemet startes på nytt, installer /etc/rc.d/init.d/dbus oppstartsskript fra blfs-bootscripts-20240913 pakken.

make install-dbus

Hvis dette er første gang D-Bus installeres på systemet, og du ikke opererer i et chroot miljø, kan du starte umiddelbart dbus-daemon uten å starte systemet på nytt:

/etc/init.d/dbus start

Merk at dette oppstartsskriptet bare starter system-brede D-Bus nissen. Hver bruker som krever tilgang til D-Bus tjenester må også kjøre en sesjonsnisse også. Det er mange metoder du kan bruke for å starte en sesjonsnisse ved hjelp av dbus-launch kommandoen. Gjennomgå dbus-launch manualsiden for detaljer om tilgjengelige parametere og alternativer. Her er noen forslag og eksempler:

  • Legg til dbus-launch til linjen i ~/.xinitrc filen som starter det grafiske skrivebordsmiljøet.

  • Hvis du bruker gdm eller en annen skjermbehandler som kaller ~/.xsession filen, kan du legge til dbus-launch til linjen i din ~/.xsession fil som starter det grafiske skrivebordsmiljøet. Syntaksen vil være lik eksemplet i ~/.xinitrc filen.

  • Eksemplene vist tidligere bruker dbus-launch for å spesifisere et program som skal kjøres. Dette har fordelen (når du også bruker --exit-with-x11 parameteren) å stoppe sesjonsnissen når det angitte programmet stoppes. Du kan også starte sesjonsnissen i systemet ditt eller personlige oppstartsskript ved å legge til følgende linjer:

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

    This method will not stop the session daemon when you exit your shell, therefore you should add the following line to your ~/.bash_logout file:

    # Kill the D-Bus session daemon
    kill $DBUS_SESSION_BUS_PID

Innhold

Installerte Programmer: dbus-cleanup-sockets, dbus-daemon, dbus-launch, dbus-monitor, dbus-run-session, dbus-send, dbus-test-tool, dbus-update-activation-environment, og dbus-uuidgen
Installert Bibliotek: libdbus-1.so
Installerte Mapper: /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.14.10, og /var/{lib,run}/dbus

Korte Beskrivelser

dbus-cleanup-sockets

brukes til å rydde opp etterlatte sockets i en mappe

dbus-daemon

er D-Bus meldingsbuss nisse

dbus-launch

brukes til å starte dbus-daemon fra et skallskript. Det vil normalt bli kalt opp fra en brukers påloggingsskript

dbus-monitor

brukes til å overvåke meldinger som går gjennom en D-Bus meldingsbuss

dbus-run-session

starter en prosess som en ny D-Bus økt

dbus-send

brukes til å sende en melding til en D-Bus meldingsbuss

dbus-test-tool

er en D-Bus trafikkgenerator og testverktøy; det er et flerbruksverktøy for feilsøking og profilering D-Bus

dbus-update-activation-environment

brukes til å oppdatere miljøet som brukes til D-Bus sesjonstjenester; den oppdaterer listen over miljøvariabler som brukes av dbus-daemon --session når den aktiverer økttjenester uten å bruke systemd

dbus-uuidgen

brukes til å generere en universell unik ID

libdbus-1.so

inneholder API funksjonene som brukes av D-Bus meldingsnisse. D-Bus er først et bibliotek som gir en-til-en kommunikasjon mellom to applikasjoner; dbus-daemon er en applikasjon som bruker dette biblioteket for å implementere en meldingsbuss nisse