packagekitとは?
packageKit は、Linux ディストリビューションで ソフトウェアのインストール・更新を自動的に管理するためのバックグラウンドサービスです。
主に GUI 環境(GNOME など)での自動アップデートやソフトウェア管理ツールと連携して動作します。
また、X Window SystemのGUI環境を利用していなくても、Cockpit のWEB管理画面を利用している場合は、裏で packagekit を利用してパッケージの一覧取得や更新操作を行っていますので、この機能も利用できないくなります
packagekitを停止する
GUI環境やCockpit を利用しない場合は、packageKit を停止しても問題場合は下記の手順で停止します。
- 現在動作中のpackagekitを停止
$ sudo systemctl stop packagekit
- 自動起動無効化して、再起動後も起動しないようにする
$ sudo systemctl disable packagekit
- サービスの現在の状態を確認
$ sudo systemctl status packagekit
- サービスが有効かどうか確認
$ sudo systemctl is-enabled packagekit
packagekit の自動起動が停止できない場合
自動起動を停止する場合に以下のようなエラーが発生する場合は自動起動は停止していません
systemctl is-enabled packagekit で「static」と表示されるのは、そのサービスが直接有効化 (enable) または無効化 (disable) できない状態となっています
packagekit.service が static になっているのは、GNOME SoftwareやKDE Discoverといったデスクトップ環境のソフトウェアセンターに依存しており、それらのアプリケーションが必要に応じて PackageKit を自動的に起動するためです。
$ sudo systemctl disable packagekit The unit files have no installation config (WantedBy=, RequiredBy=, Also=, Alias= settings in the [Install] section, and DefaultInstance= for template units). This means they are not meant to be enabled or disabled using systemctl. Possible reasons for having this kind of units are: • A unit may be statically enabled by being symlinked from another unit's .wants/ or .requires/ directory. • A unit's purpose may be to act as a helper for some other unit which has a requirement dependency on it. • A unit may be started when needed via activation (socket, path, timer, D-Bus, udev, scripted systemctl call, ...). • In case of template units, the unit is meant to be enabled with some instance name specified. $ systemctl is-enabled packagekit static
このサービス(packagekit.service)にマスクをして、他のプロセスによって起動されることを完全に防ぎます。
マスクを設定すると、systemctl start や他のサービスからの起動要求があっても、packagekit.service は起動しなくなります。
# packagekitを停止する $ sudo systemctl stop packagekit # mask を使う(完全に無効化) $ sudo systemctl mask packagekit
packagekitを停止・自動起動を戻す方法
packagekit の自動起動をmaskやdisableで停止した2つのケースで、それぞれ 元の状態(自動起動が有効でサービスが起動している状態)に戻す手順 をまとめます。
disable を使って自動起動を止めた場合
# packagekitを起動 $ sudo systemctl stop packagekit # 自動起動を有効化 $ sudo systemctl enable packagekit
mask を使って完全に無効化した場合
# マスク(起動禁止)を解除 $ sudo systemctl unmask packagekit # 自動起動を有効化 $ sudo systemctl enable packagekit # サービスを即時起動 $ sudo systemctl start packagekit
状態確認コマンド(共通)
以下のコマンドで、packagekit が正しく動作しているか確認できます
# サービスの稼働状態 systemctl status packagekit # 自動起動の有効状態(enabled ならOK) systemctl is-enabled packagekit
コメント