我需要找出任意 Debian 软件包对于某个特定的 Debian 主要版本曾经存在过哪些版本。
在全新安装的 Debian 中,apt-cache 策略仅显示可用的最新软件包版本。
以 libssl1.0.0 为例,Debian Wheezy 7.0 附带的 libssl1.0.0 存在 heartbleed 漏洞,后来漏洞被修复,并发布了新版本(1.0.1e-2+deb7u5)。
我需要所有这些补丁的列表,从第一个发布的 Debian 主要版本到当前日期。我更愿意使用现有工具(例如 apt-cache)来做到这一点。
我可以想象使用额外的 sources.list 条目可以解决这个问题,但我在网上搜索了两个多小时都没有成功。
有人知道如何做到这一点吗?
背景:我目前正在调查 Debian 软件包中 CVE 修复的发生情况。这是一项相当繁琐的工作,因此我希望避免浏览每个更改日志来检查发布日期、版本号等(无论如何这在以后都是必要的,但是我想推迟这项任务)。
答案1
Debian 软件包提供了易于解析的变更日志。可以使用以下方法获取变更日志
apt-get changelog <pkgname>
或者
aptitude changelog <pkgname>
通过搜索某个软件包版本,可以找到当前使用的 Debian 版本中某个软件包的所有已发布补丁。例如:
aptitude changelog libssl1.0.0 | grep "1.0.1k"
这将打印软件包 libssl1.0.0 版本 1.0.1k 的所有补丁列表。在 Debian Jessie 上,这将是:
vagrant@debian-jessie:~$ aptitude changelog libssl1.0.0 | grep "1.0.1k"
openssl (1.0.1k-3+deb8u1) jessie-security; urgency=medium
openssl (1.0.1k-3) unstable; urgency=medium
openssl (1.0.1k-2) unstable; urgency=high
openssl (1.0.1k-1) unstable; urgency=medium