Show Table of Contents
7.3. PackageKit アーキテクチャ
Red Hat は、システムと互換性があるパッケージおよびパッケージグループの表示、更新、インストール、アンインストールを行うための PackageKit アプリケーションスイートを提供します。PackageKit のアーキテクチャ は、バックエンドの
packagekitd
デーモンと通信する数種のグラフィカルフロンドエンドで構成されています。バックエンドの packagekitd デーモンは、Yum を利用してパッケージのインストールや削除など実際のトランザクションを実行するパッケージマネージャ固有のバックエンドと通信します。
表7.1「PackageKit の GUI ウィンドウ、メニューの場所、シェルプロンプトのコマンド」 では、GUI ウィンドウ名、GNOME デスクトップまたは ソフトウェアの追加/削除 ウィンドウから GUI ウィンドウを起動する方法、 GUI ウィンドウを開くコマンドラインのアプリケーション名を示しています。
表7.1 PackageKit の GUI ウィンドウ、メニューの場所、シェルプロンプトのコマンド
ウィンドウのタイトル | 機能 | 開き方 | シェルコマンド |
---|---|---|---|
ソフトウェアの追加/削除 | パッケージ情報のインストール、削除、表示 |
GNOME パネルより、
→ → を選択
| gpk-application |
ソフトウェア更新 | パッケージの更新を実行 |
GNOME パネルより、
→ → を選択
| gpk-update-viewer |
ソフトウェアソース | Yum リポジトリーの有効/無効化 |
ソフトウェアの追加/削除 より、 → を選択
| gpk-repo |
ソフトウェアログビューア | トランザクションログの表示 |
ソフトウェアの追加/削除 より、 → を選択
| gpk-log |
ソフトウェア更新の詳細設定 | PackageKit の詳細設定 | gpk-prefs | |
(通知スペースでの警告) | 更新が利用可能時に通知 |
GNOME パネルより、Startup Programs (自動起動するプログラム) タブを選択
→ → , | gpk-update-icon |
packagekitd
デーモンは、ユーザーセッションの外で実行し、様々なグラフィカルなフロントエンドと通信します。packagekitd
デーモンは、[3] DBus システムメッセージバスを経由して、別のバックエンドと通信します。これは、Yum の Python API を利用してクエリを実行し、システムに変更を加えます。Red Hat と Fedora 以外の Linux システムでは、packagekitd
はそのシステムのネイティブのパッケージマネージャーの利用が可能な他のバックエンドと通信することができます。このモジュラーアーキテクチャは、グラフィカルインターフェースが多くの異なるパッケージマネージャーと共に動作して本質的に同じ種類のパッケージ管理タスクを実行するために必要な抽象化を提供します。PackageKit のフロンドエンドの使用方法を学ぶと、Yum 以外のネイティブのパッケージマネージャを利用している時でも、多くの様々な Linux ディストリビューションにわたって、なじみのある同じグラフィカルインターフェースを使用することができます。
さらに、PackageKit の関与事項の分離により、GUI ウィンドウの 1 つに クラッシュが生じても (またはユーザーの X Window セッションでも) 、ユーザーセッションの外で実行する
packagekitd
デーモンが監視しているパッケージ管理タスクに影響を与えない、という信頼性を提供します。
本章で説明されているフロントエンドのグラフィカルアプリケーションはすべて、PackageKit とその依存関係ではなく、
gnome-packagekit
パッケージが提供します。
最後に、PackageKit には
pkcon
と呼ばれるコンソールベースのフロンドエンドも付いてきます。
[3]
システムデーモンは通常、ユーザーや他のプログラムにサービスを提供する、長いプロセスです。多くの場合、システムデーモンは特別な初期化スクリプト ( initscripts と短縮される場合が多い) によりブート時に起動します。デーモンは
service
コマンドに応答し、chkconfig on
または chkconfig off
コマンドを使用することで永久にオン/オフにすることができます。それらは、通常 packagekitd
デーモンのように名前に 「d 」 を付けることによって認識できます。システムのサービスに関する情報は 10章サービスとデーモン を参照してください。