ฉันจะค้นหาประวัติการอัพเดทได้ที่ไหน


140

มีสถานที่ที่ฉันสามารถดูอัพเดตที่ฉันติดตั้งไว้หรือไม่

คำตอบ:



45

ใน 10.10, Ubuntu Software Centerมีรายการของการปรับปรุงทั้งหมดที่คุณดาวน์โหลดมาในอดีต

ป้อนคำอธิบายรูปภาพที่นี่


4
+1 คำตอบนี้ใช้ได้กับเวอร์ชันล่าสุดเช่นกัน
James Bradbury

4
@JamesBradbury ตัวเลือกนี้หายไปจาก Ubuntu 16.04 on
feeela

25

/ var / log / apt มีประวัติของการติดตั้งแพ็คเกจ อย่างไรก็ตามโดยค่าเริ่มต้นจะมีการจัดการโดยlogrotateที่บีบอัดและอายุออกรายการเก่า


ดังนั้นนี่เป็นสถานที่ที่ดีที่สุดสำหรับฉันในการตรวจสอบประวัติบน Ubuntu Server หรือไม่
Brettski

21

บน 10.04 คลิก (ระบบ> การดูแลระบบ> Synaptic Package Manager> ไฟล์> ประวัติ)


11
ทั้งหมดที่ฉันได้รับคือรายการของแพ็คเกจที่ฉันติดตั้งผ่านทาง Synaptic แต่จะไม่แสดงแพ็คเกจทั้งหมดที่ฉันอัพเดตผ่าน Update Manager
อิสยาห์

19

เป็นอีกทางเลือกหนึ่งสำหรับคำตอบของ lgarzo คุณสามารถทำgrepสิ่งที่คุณสนใจ/var/log/dpkg.logได้ เช่นหากคุณต้องการเห็นทุกสิ่งที่คุณติดตั้งหรืออัปเกรดเมื่อวานนี้คุณสามารถเรียกใช้:

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

สิ่งหนึ่งที่ควรทราบ: นี่จะแสดงรายการแพ็คเกจที่ติดตั้งด้วยตนเอง ( sudo dpkg -i ...) ซึ่งจะไม่แสดงในประวัติของ apt

ใช้ zgrep ยิ่งขึ้นหากติดตั้งไว้เพื่อให้คุณสามารถค้นหาบรรทัดในไฟล์ gzipped ได้เช่นกัน

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

11

ตอนนี้เป็นไปได้ที่จะทำผ่านศูนย์ซอฟต์แวร์เช่นกัน! ไปที่ประวัติและคุณสามารถแสดงการอัปเดตและการติดตั้งทั้งหมดของคุณ

ประวัติศูนย์ซอฟต์แวร์


ฉันคิดว่ามันคือ 10.10?
vrcmr

แน่นอนว่าเป็น ฉันไม่คิดว่ามันจะมีอยู่ในการแจกแจงก่อนหน้านี้ ...
Nick Pascucci

3

มันมีประโยชน์สำหรับเราที่จะมีคำตอบที่ง่ายและแม่นยำขึ้นเล็กน้อยสำหรับคำถาม "เมื่อครั้งสุดท้ายที่เราทำการแก้ไขสิ่งนี้?" ดังนั้นฉันจึงรวมมันเข้าด้วยกัน ฉันทดสอบในวันที่ 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";
}
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.