Ubuntu中安装的package信息位于下面路径:
$ ll /var/log/dpkg*
-rw-r--r-- 1 root root 0 5月 1 07:13 /var/log/dpkg.log
-rw-r--r-- 1 root root 38095 4月 28 10:13 /var/log/dpkg.log.1
-rw-r--r-- 1 root root 16753 3月 30 09:18 /var/log/dpkg.log.2.gz
-rw-r--r-- 1 root root 110847 2月 22 08:26 /var/log/dpkg.log.3.gz
这里的log文件存储了package的变更信息,可以查看:
$ tail -f /var/log/dpkg.log.1
2022-04-28 10:13:12 status triggers-pending man-db:amd64 2.9.1-1
2022-04-28 10:13:12 status unpacked git-man:all 1:2.25.1-1ubuntu3.4
2022-04-28 10:13:12 startup packages configure
2022-04-28 10:13:12 configure git-man:all 1:2.25.1-1ubuntu3.4 <none>
2022-04-28 10:13:12 status unpacked git-man:all 1:2.25.1-1ubuntu3.4
2022-04-28 10:13:12 status half-configured git-man:all 1:2.25.1-1ubuntu3.4
2022-04-28 10:13:12 status installed git-man:all 1:2.25.1-1ubuntu3.4
2022-04-28 10:13:12 trigproc man-db:amd64 2.9.1-1 <none>
2022-04-28 10:13:12 status half-configured man-db:amd64 2.9.1-1
2022-04-28 10:13:16 status installed man-db:amd64 2.9.1-1
实际上,当package信息发生变更,就会将信息存储在/var/log/dpkg.log文件中,但这个文件实际大小是0。
因为Linux中,log文件一般都有logrotate工具来控制,会根据配置,以固定周期对log文件进行拆分和压缩,并只保留最新的一部分log。避免log文件占用太多的存储空间。
所以可以看到上面的log.1,log.2.gz和log.3.gz文件。
要访问压缩的gz文件,可以使用zgrep, zmore, zless工具来查看。
$ zmore /var/log/dpkg.log.2.gz
$ zless /var/log/dpkg.log.2.gz
$ zgrep 'remove' /var/log/dpkg.log.2.gz
所以我们想找查看安装的package的信息,就会按时间顺序输出:
$ grep installed /var/log/dpkg.log.1
或者
$ zgrep installed /var/log/dpkg.log.2.gz
参考:
https://www.cyberciti.biz/faq/debian-ubuntu-linux-find-package-installed-updated-date/
How To Manage Logfiles with Logrotate on Ubuntu 16.04 | DigitalOcean