「D-Bus」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(他言語へのリンクを修正)
(同期)
8行目: 8行目:
 
{{Pkg|dbus}} は {{Pkg|systemd}} の依存関係としてインストールされ、ユーザーセッションバスは各ユーザーごとに[https://archlinux.org/news/d-bus-now-launches-user-buses/ 自動的に開始]されます。
 
{{Pkg|dbus}} は {{Pkg|systemd}} の依存関係としてインストールされ、ユーザーセッションバスは各ユーザーごとに[https://archlinux.org/news/d-bus-now-launches-user-buses/ 自動的に開始]されます。
   
== 代替実装 ==
+
== 実装 ==
  +
  +
Arch は 2 つの D-Bus メッセージブローカー実装を提供します。最初に、ユーザーは、{{Pkg|systemd}} パッケージのインストール中に、目的の ''dbus-units'' プロバイダーを選択するよう求められます。一度にインストールできる実装は 1 つだけです。これにより、自動開始される dbus 実装となるユニットファイルが提供されます。<br>
  +
新しいデフォルトの {{Pkg|dbus-broker-units}} または {{Pkg|dbus-daemon-units}} パッケージは、ソケットによって開始される {{ic|dbus.service}} システムファイルとユーザーユニットファイルを提供します。それぞれの実装の {{ic|dbus-broker.service}} または {{ic|dbus.service}} ファイルへのシンボリックリンクになっています。systemd ユニットパッケージには、依存関係として、使用される実際の実装、つまり {{Pkg|dbus-broker}} や {{Pkg|dbus}} が必要です。これらは、シンボリックリンクのターゲットである {{ic|dbus-broker.service}} または {{ic|dbus.service}} ファイルも提供します。
  +
  +
{{Pkg|dbus}} パッケージは現在でも systemd によって明示的に必要とされており、{{Pkg|dbus-broker}} は ''dbus'' 自体を提供しません。 ただし、どちらのパッケージも独自に自動起動されず、{{Pkg|dbus-units}} のプロバイダーは 1 つしかインストールできないので、両方のデーモンパッケージがインストールされていても問題ありません ''dbus'' パッケージは、{{Pkg|dbus-broker}} が現在提供していない診断目的で使用されるコマンドラインユーティリティにも役立つ場合があります。
   
 
=== dbus-broker ===
 
=== dbus-broker ===

2024年1月15日 (月) 03:35時点における版

D-Bus はプロセス間のやりとりを行うためのメッセージバスシステムです。システム全体とユーザーセッション両方で実行できるデーモンと、アプリケーションが D-Bus を使うためのライブラリのセットから構成されています。

dbussystemd の依存関係としてインストールされ、ユーザーセッションバスは各ユーザーごとに自動的に開始されます。

実装

Arch は 2 つの D-Bus メッセージブローカー実装を提供します。最初に、ユーザーは、systemd パッケージのインストール中に、目的の dbus-units プロバイダーを選択するよう求められます。一度にインストールできる実装は 1 つだけです。これにより、自動開始される dbus 実装となるユニットファイルが提供されます。
新しいデフォルトの dbus-broker-units または dbus-daemon-units パッケージは、ソケットによって開始される dbus.service システムファイルとユーザーユニットファイルを提供します。それぞれの実装の dbus-broker.service または dbus.service ファイルへのシンボリックリンクになっています。systemd ユニットパッケージには、依存関係として、使用される実際の実装、つまり dbus-brokerdbus が必要です。これらは、シンボリックリンクのターゲットである dbus-broker.service または dbus.service ファイルも提供します。

dbus パッケージは現在でも systemd によって明示的に必要とされており、dbus-brokerdbus 自体を提供しません。 ただし、どちらのパッケージも独自に自動起動されず、dbus-units のプロバイダーは 1 つしかインストールできないので、両方のデーモンパッケージがインストールされていても問題ありません dbus パッケージは、dbus-broker が現在提供していない診断目的で使用されるコマンドラインユーティリティにも役立つ場合があります。

dbus-broker

dbus-broker — は libdbus リファレンス実装のドロップインの置き換えで、D-Bus リファレンス実装との互換性を維持しつつ、高い性能と信頼性を提供する ことを目的としています。

https://github.com/bus1/dbus-broker || dbus-broker

dbus-broker をシステムバスとして有効にするには、dbus-broker.service有効化 して下さい。

ユーザーバスとして有効にするには、dbus-broker.service ユーザーユニット を単一ユーザーに対して有効にするか、すべてのユーザーに対してグローバルに有効にすることができます。

これらの設定を有効にするために再起動して下さい。

ノート: dbus-broker には現在 AppArmorサポート はありません。

ヒントとテクニック

dbus サービスを上書きする

$XDG_DATA_HOME/dbus-1/services にある dbus のサービスを上書きすることができます。

サービスがすでに起動されている場合、上書きは機能しません。既存のサービスのプロセスを強制終了するか、サービスを早めに起動する必要があります。

同じ既知なバス名を提供するサービスが複数インストールされている場合、これを使用して特定のサービスを常に使用することができます。

デバッグ

  • D-Spy — 使いやすい GUI の D-Bus デバッガーツール。D-Spy を使用すると、実行中のプログラムの D-Bus インターフェイスを検査し、それらのインターフェイスでメソッドを呼び出すことができます。
https://gitlab.gnome.org/GNOME/d-spy || d-spy
  • QDbusViewer — GUID-Bus デバッガー、D-Bus サービスを検査し、それらのメソッドを呼び出すために使用できます。
https://doc.qt.io/qt-5/qdbusviewer.html || qt5-tools

busctl(1) から systemd を使用することもできます

参照