#1 楼
您可以在history.log
中阅读/var/log/apt
文件。例如。
less /var/log/apt/history.log
。#2 楼
在10.10中,Ubuntu软件中心列出了您过去下载的所有更新。评论
+1此答案也适用于最新版本。
–詹姆斯·布拉德伯里(James Bradbury)
2014年7月26日19:05
@JamesBradbury此选项已从Ubuntu 16.04移除
–feeela
18年4月3日在11:00
#3 楼
/ var / log / apt包含软件包安装的历史记录。但是,默认情况下,它由logrotate
管理,该压缩和老化旧条目。评论
那么这是我查看Ubuntu Server历史记录的最佳场所吗?
–布雷特斯基
2011年4月6日17:26
#4 楼
在10.04上,单击(系统>管理> Synaptic软件包管理器>文件>历史记录)评论
我得到的只是通过Synaptic安装的软件包的列表,它没有显示我通过Update Manager更新的所有软件包。
–以赛亚书
2010-11-21在19:39
#5 楼
作为lgarzo答案的替代方法,您可以从grep
中查询感兴趣的内容。例如,如果您想查看昨天安装或升级的所有产品,则可以运行:cat /var/log/dpkg.log | grep "^2012-03-25.*\ installed\ "
注意事项:这还将列出手动安装的软件包(
/var/log/dpkg.log
) ,它不会显示在apt的历史记录中。如果已安装zgrep,则最好使用zgrep,以便您也可以在gzip压缩文件中找到行。
zgrep "^2012-03-25.*\ installed\ " /var/log/dpkg.log*
#6 楼
现在也可以通过软件中心来执行此操作!转到“历史记录”,然后可以显示所有更新和安装。评论
我想是10.10吗?
–vrcmr
10-11-21在19:36
当然可以我认为以前的发行版中没有这个功能...
–尼克·帕斯库奇(Nick Pascucci)
2010-11-21在19:53
#7 楼
对我们“何时才是最后一次修补此问题?”这个问题做出更简单,准确的回答对我们很有用。所以我把这放在一起。我在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 = ;
}
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";
}
评论
值得一提的是,该文件夹中可能存在较旧的历史记录文件,而不仅仅是/var/log/apt/history.log。也许像/var/log/apt/history.log.1.gz
– Max Bileschi
19年11月22日在16:17
甚至还在仿生上工作。以防万一有人因回应的年龄而感到恐惧。
– Alfabravo
20年5月20日在15:24