1. 程式人生 > 實用技巧 ># 2021-01-12 #「GNOME」- 關閉 PackageKit 服務

# 2021-01-12 #「GNOME」- 關閉 PackageKit 服務

問題描述

PackageKit,包管理服務,通過 DBus 介面,執行某些簡單的包管理任務,比如重新整理快取,安裝、更新、移除軟體等等。

但是該服務經常佔用大量 CPU 資源,非常多,而且一直有人反饋這個問題:
https://gitlab.gnome.org/GNOME/gnome-software/issues/512
https://bugs.launchpad.net/appcenter/+bug/1587975
https://www.reddit.com/r/linuxquestions/comments/55q35o/what_is_packagekitd_and_why_does_it_use_so_much/

https://baheyeldin.com/technology/linux/how-avoid-packagekit-consuming-lots-cpu-and-ram-kubuntu-1404.html

鑑於在系統管理中,我們經常使用 YUM/APT 等等的包管理器,從未使用該服務,因此我們決定關閉該服務。

該筆記將介紹:如何關閉 PackageKit 服務。

附加說明

作業系統:Kali GNU/Linux Rolling
軟體版本:packagekit 1.0.1-2

關於該筆記分類:在 Debian 10.3 中,桌面環境(graphical.target)會啟動 PackageKit 服務,而多使用者環境(multi-user.target)不會啟動該服務,因此將該筆記分類到桌面環境設定中。

解決辦法

目前(09/02/2019),並沒有人找到 CPU 佔用高的原因。所以,對於這個問題也沒有什麼解決方案。解除安裝的有,禁用的有,這那的都有,都是些 workaround 辦法。

第一步、禁用服務

由於依賴的原因,還不能直接刪除掉。因此只能禁用服務:

systemctl stop packagekit.service
systemctl disable packagekit.service
systemctl mask packagekit.service # 如果不mask的話,它還會啟動。

第二步、移除配置(可選步驟)

在 Debian 中,當禁用 PackageKit 服務後,執行 apt-get 安裝的最後階段,會產生錯誤提示:

Error: GDBus.Error:org.freedesktop.systemd1.UnitMasked: Unit packagekit.service is masked.

這是由 /etc/apt/apt.conf.d/20packagekit 導致的。因為在 apt-get install 完成之後,會出觸發特定的 PackageKit 鉤子,由於我們禁用 PackageKit 服務而導致鉤子無法訪問該服務,所以禁用該鉤子即可:

mv -v /etc/apt/apt.conf.d/20packagekit{,.disabled}

參考文獻