我在哪里可以查看我的更新历史记录?

有没有可以查看我安装的更新的地方?

您可以在/var/log/apt读取history.log文件。

例如。 less /var/log/apt/history.log

在10.10中, Ubuntu软件中心列出了您过去下载的所有更新。

在此处输入图像描述

/ var / log / apt包含软件包安装的历史记录。 但是,默认情况下,它由logrotate管理,它会压缩旧条目并使其老化。

在10.04单击(系统>管理>新立得软件包管理器>文件>历史记录)

作为lgarzo答案的替代方案,您可以从/var/log/dpkg.log查找您感兴趣的内容。 例如,如果您想查看昨天安装或升级的所有内容,可以运行:

 cat /var/log/dpkg.log | grep "^2012-03-25.*\ installed\ " 

有一点需要注意:这也将列出手动安装的软件包( sudo dpkg -i ... ),这些软件包不会出现在apt的历史记录中。

如果安装了zgrep,最好还是使用它,这样你就可以在gzip文件中找到行

 zgrep "^2012-03-25.*\ installed\ " /var/log/dpkg.log* 

现在也可以通过软件中心完成这项工作! 转到历史记录,您可以显示所有更新和安装。

软件中心历史

对于我们对“我们最后一次修补这个东西的时间是什么时候?”这个问题进行简单而准确的回答变得有用了。 所以我把它放在一起。 我在12.04和14.04以及16.04进行了测试。 它为该问题返回了相当准确的答案。 注意:“合理准确”可能不是“完全准确”。 注意:“仅针对该问题”。

样本输出:

 xenial% 9: ./linuxpatchdate 2016-07-19 54 2017-02-24 363 2017-03-08 7 2017-03-09 2 

子程序和程序:

 #!/usr/bin/perl #------------------ subroutines -------------------- sub parseRecord { my $sdate = ""; my $useful = 0; my $packages = 0; my @ptmp; while (my $recordLine = shift() ) { if ($recordLine =~ m/^Start-Date: ([\d\-]*).*/) { $sdate = $1; } elsif ($recordLine =~ m/^Commandline:.*upgrade/) { $useful = 1; } elsif ($recordLine =~ m/^Install: (.*)/) { $recordLine =~ s/\([^\)]*\)//g; @ptmp = split(/,/,$recordLine); $packages = $packages + $#ptmp + 1; } elsif ($recordLine =~ m/^Upgrade: (.*)/) { $recordLine =~ s/\([^\)]*\)//g; @ptmp = split(/,/,$recordLine); $packages = $packages + $#ptmp + 1; } } if ($useful) { return ($sdate,$packages); } else { return ("0",0); } } #------------------ main program -------------------- @lines = split(/\n/,`/bin/zcat -f /var/log/apt/history.log /var/log/apt/history*gz`); my %patchHash; my $line; my @inputLines; my $pushDate = ""; my $pushNum = ""; foreach $line (@lines) { # all records separated by blank lines if ($line !~ /./) { # no-op } elsif ($line =~ m/^Start-Date: ([\d\-]*).*/) { @inputLines = (); push (@inputLines, $line); } elsif ($line =~ m/^End-Date: ([\d\-]*).*/) { ($pushDate, $pushNum) = parseRecord(@inputLines); if ($pushNum != 0) { $patchHash{$pushDate} += $pushNum; } } else { push (@inputLines, $line); } } foreach $pushDate (sort(keys(%patchHash))) { print "$pushDate $patchHash{$pushDate}\n"; }