如何获取 dpkg/apt/aptitude 中已安装/已删除软件包的通知?

如何获取 dpkg/apt/aptitude 中已安装/已删除软件包的通知?

我正在编写一个 Python 系统脚本,需要在程序安装/升级/删除时收到通知。

首先,我想将我的应用程序连接到 apt-dbus 守护进程。不幸的是,我还没有找到它,在等待它的实现(这可能需要很长时间)的同时,我正在研究另一种方法来实现它。

所以我考虑过pyinotify。也许每次文件/var/log/apt/history.log发生变化时我都可以收到通知,然后我只需解析添加的行即可获得我期望的结果。

你能给我推荐其他的吗安全的怎么做呢?

谢谢。

答案1

它不能满足您的所有要求,但它可以提供帮助:使用 Pre-Install-Pkgs,该命令在安装时使用 dpkg、apt、aptitude 触发:

cat /etc/apt/apt.conf.d/80user 
DPkg::Pre-Install-Pkgs {"logger ";}

在系统日志中:

Sep 10 22:08:35 Bart logger: /var/cache/apt/archives/scim-python-common_0.1.13~rc1-2build1_all.deb
Sep 10 22:08:35 Bart logger: /var/cache/apt/archives/python-scim_0.1.13~rc1-2build1_i386.deb
Sep 10 22:08:35 Bart logger: /var/cache/apt/archives/scim-python_0.1.13~rc1-2build1_i386.deb

您可以用您想要的命令替换 logger,例如 mail。

相关内容