dbus-1.16.2

Introduksjon til D-Bus

Selv om D-Bus ble bygget i LFS, det er noen funksjoner levert av pakken som andre BLFS pakker trenger, men deres avhengigheter passet ikke inn i LFS.

[Notat]

Notat

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

Pakkeinformasjon

D-Bus Avhengigheter

Anbefalt

Valgfri

Systemd-257.3 (kjøretid, for registrering av tjenester lansert av D-Bus øktnissen som systemd brukertjenester); For testene: D-Bus Python-1.4.0, PyGObject-3.52.3, og Valgrind-3.24.0; for dokumentasjon: Doxygen-1.13.2, 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 å gå gjennom filen meson_options.txt først og legge til eventuelle ekstra ønskede alternativer til meson oppsettlinjen nedenfor):

mkdir build &&
cd    build &&

meson setup --prefix=/usr          \
            --buildtype=release    \
            --wrap-mode=nofallback \
            .. &&
ninja

Se nedenfor for testinstruksjoner.

Nå, som root bruker:

ninja 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

Til slutt, fortsatt som root bruker, gi nytt navn til dokumentasjonsmappen (det eksisterer bare hvis de valgfrie avhengighetene er oppfylt for minst ett dokumentasjonsformat) for å gjøre det versjonert:

if [ -e /usr/share/doc/dbus ]; then
  rm -rf /usr/share/doc/dbus-1.16.2    &&
  mv -v  /usr/share/doc/dbus{,-1.16.2}
fi

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

Hvis du vil kjøre enhetsregresjonstestene, krever meson 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):

meson configure -D asserts=true -D intrusive_tests=true &&
ninja test

Parameterforklaringer

--wrap-mode=nofallback: Denne bryteren forhindrer meson fra å bruke delprosjektets tilbakefall for evt avhengighetserklæringer i byggefilene, og forhindrer det å laste ned eventuell valgfrie avhengigheter som ikke er installert på systemet.

-D intrusive_tests=true: Bygger ekstra deler av koden for å støtte alle tester. Ikke bruk på en produksjonsbygning.

-D asserts=true: Gjør det mulig å kjøre feilsøkingskode påstander for utsagn som normalt antas å være sanne. Dette forhindrer advarsel om det '-D asserts=true' 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

Det er mange metoder du kan bruke for å starte en sesjonsnisse ved å bruke 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

En liste over installerte filer, sammen med deres korte beskrivelser finner du på ../../../../lfs/view/systemd/chapter08/dbus.html#contents-dbus.