问题描述
有没有办法显示apt-get通过命令行更改的包的历史记录?
最佳解决思路
使用apt(apt-get)的所有操作都被记录下来。这些文件可在/var /log /apt /中找到。要查看最近的历史记录,请执行:
less /var/log/apt/history.log
这些日志得到旋转(每个月我猜),旧文件将后缀数字和压缩。所以要查看下一个历史记录,请使用:
zless /var/log/apt/history.log.1.gz
查看可用的日志:
ls -la /var/log/apt/
次佳解决思路
您也可以制作一个简短的命令来显示有趣的内容。
将此自定义函数添加到您的~/.bashrc:
### pars for fun: install | remove | rollback
function apt-history(){
case "$1" in
install)
grep 'install ' /var/log/dpkg.log
;;
upgrade|remove)
grep $1 /var/log/dpkg.log
;;
rollback)
grep upgrade /var/log/dpkg.log | \
grep "$2" -A10000000 | \
grep "$3" -B10000000 | \
awk '{print $4"="$5}'
;;
*)
cat /var/log/dpkg.log
;;
esac
}
并在像这样的终端中调用它:
kreso@h17:~$ apt-history install
2013-08-06 14:42:36 install gir1.2-nautilus-3.0:amd64 1:3.8.2-0ubuntu1~ubuntu13.04.1
2013-08-06 14:42:36 install python-nautilus:amd64 1.1-3ubuntu1
2013-08-06 14:42:37 install insync-nautilus:all 1.0.20
2013-08-07 14:41:37 install powertop:amd64 2.1-0ubuntu1
2013-08-07 18:44:10 install libdiscid0:amd64 0.2.2-3build1
2013-08-07 18:44:11 install sound-juicer:amd64 3.5.0-0ubuntu1
第三种解决思路
您还可以使用以下命令列出最近安装的软件包
grep "\ install\ " /var/log/dpkg.log
第四种思路
如果你想要安装这些软件包而不是随后卸载,请尝试以下操作:
comm -23
这是安装减去任何匹配删除。
参考文献:
参考资料