6.64. D-Bus-1.10.10

D-Bus はメッセージバスシステムであり、アプリケーションから他のアプリケーションへの通信を容易に行う方法を提供します。 D-Bus にはシステムデーモン (例えば "新たなハードウェアデバイスが追加されました" や "プリンターキューが変更されました" といったイベント) やログインユーザーごとのセッションデーモン (ユーザーアプリケーション間で必要な一般的なIPC) があります。 またメッセージバスは、一般的な1対1によるメッセージ送受信のフレームワーク上にビルドされます。 これは二つのアプリケーション間にて (メッセージバスデーモンを介さずに) 直接通信するために利用されます。

概算ビルド時間: 0.2 SBU
必要ディスク容量: 23 MB

6.64.1. D-Bus のインストール

D-Bus をコンパイルするための準備をします。

  ./configure --prefix=/usr                       \
              --sysconfdir=/etc                   \
              --localstatedir=/var                \
              --disable-static                    \
              --disable-doxygen-docs              \
              --disable-xml-docs                  \
              --docdir=/usr/share/doc/dbus-1.10.10 \
              --with-console-auth-dir=/run/console

configure オプションの意味:

--with-console-auth-dir=/run/console

ConsoleKit の auth ディレクトリを指定します。

パッケージをコンパイルします。

make

本パッケージにはテストスイートがあります。 ただし実行するためには LFS には含まれていないパッケージをいくつか必要とします。 テストの実行方法については http://www.linuxfromscratch.org/blfs/view/7.10/general/dbus.html に示されています。

パッケージをインストールします。

make install

共有ライブラリは /lib へ移動します。 これにより /usr/lib にある .so ファイルを再生成します。

mv -v /usr/lib/libdbus-1.so.* /lib
ln -sfv ../../lib/$(readlink /usr/lib/libdbus-1.so) /usr/lib/libdbus-1.so

シンボリックリンクを生成します。 D-Bus と systemd が同一の machine-id ファイルを利用できるようにするためです。

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

6.64.2. D-Bus の構成

インストールプログラム: dbus-cleanup-sockets, dbus-daemon, dbus-launch, dbus-monitor, dbus-run-session, dbus-send, dbus-uuidgen
インストールライブラリ: libdbus-1.{a,so}
インストールディレクトリ: /etc/dbus-1, /usr/include/dbus-1.0, /usr/lib/dbus-1.0, /usr/share/dbus-1, /usr/share/doc/dbus-1.10.10, /var/lib/dbus

概略説明

dbus-cleanup-sockets

ディレクトリ内に取り残されたソケットをクリアします。

dbus-daemon

D-Bus メッセージバスデーモン。

dbus-launch

シェルスクリプトから dbus-daemon を起動します。

dbus-monitor

D-Bus メッセージバスを通じたメッセージ送信を監視します。

dbus-run-session

シェルスクリプトから dbus-daemon のセッションバスインスタンスを起動します。 そしてそのセッションにて指定されたプログラムを起動します。

dbus-send

D-Bus メッセージバスにメッセージを送ります。

dbus-uuidgen

ユニークIDを生成します。

libdbus-1

D-Bus メッセージバスとの通信を行う API 関数を提供します。