如何获取debian中软件包升级的时间顺序列表?

如何获取debian中软件包升级的时间顺序列表?

我想获取按时间顺序排列的软件包升级列表。就像是:

Jan 08 10:45:33 CET 2016  xorg 1:7.7+6      upgrade to 1:7.7+7
Jan 10 13:16:33 CET 2016  gcc 1.132         upgrade to 1.133
Jan 12 07:05:33 CET 2016  pulseaudio 5.0-12 upgrade to 5.0-13

我对我的机器上的升级列表感兴趣,也对 debian 源代码感兴趣。

答案1

这可以在文件中找到/var/log/dpkg.log

使用此命令生成列表:

awk '$3=="upgrade"' /var/log/dpkg.log*

输出示例:

2015-12-30 15:33:15 upgrade firefox 38.0+build3-0ubuntu0.12.04.1 43.0+build1-0ubuntu0.12.04.1

答案2

我解决了两个问题混乱回答:

1) 生成的日志文件没有排序,因为*日志文件将按字母顺序排列(dpkg.log, dpkg.log.1,dpkg.log.2 , ...),这相当于从最新到较旧,并且在日志文件内,行是从较旧到最新排序的。一种解决方案是(谢谢托比)使用ls -rt

awk '$3=="upgrade"' $(ls -rt /var/log/dpkg.log*)

2) /var/log 中的文件可以通过 logrotate 进行 gzip 压缩。为此,以下答案很有用:有没有一个把zcat和cat透明结合的工具?。解决办法是

 zcat -f -- $(ls -rt /var/log/dpkg.log*) | awk '$3=="upgrade"'

相关内容