我们以 NGINX 为例。我安装了 NGINX,一年后它收到了几个安全更新(通过unattended-upgrades
),另一个系统操作员运行了apt-get upgrade
几次(也许dist-upgrade
已经执行了一次)。从那时起,日志文件已被“logrotated”,因此我无法使用它们。现在假设已经发现版本 X.XX 有几个安全问题 - 除了日志文件之外,是否有任何方法可以追溯该版本是否曾经安装在我的服务器上?如果我检查存储库以查看发布的时间和内容,那么它是否曾经存在于我的系统上就不是事实。
有没有办法在 Debian 系统上检查以前安装过哪些版本的 Debian 软件包?
答案1
软件包版本的唯一历史记录是跟踪软件包安装和升级的各种日志;其中包括apt
的登录/var/log/apt
(/var/log/apt/history*
特别是),还dpkg
包括 的登录/var/log/dpkg.log*
。后者更全面,因为它们涵盖了所有dpkg
操作,而apt
的日志仅涵盖apt
基于 的工具。
如果这些日志因轮换而丢失,通常无法确定安装了给定软件包的哪些版本。
有些软件包会存储自己的升级痕迹,但这相当不寻常,通常不能依赖。