Di mana saya dapat mencari riwayat pembaruan saya?


140

Apakah ada tempat di mana saya dapat melihat pembaruan apa yang telah saya instal?

Jawaban:


132

Anda dapat membaca history.logfile di /var/log/apt.

Misalnya. less /var/log/apt/history.log.


45

Di 10.10, Pusat Perangkat Lunak Ubuntu memiliki daftar semua pembaruan yang telah Anda unduh di masa lalu.

masukkan deskripsi gambar di sini


4
+1 Jawaban ini juga berfungsi pada versi yang lebih baru.
James Bradbury

4
@JamesBradbury Opsi ini hilang dari Ubuntu 16.04 pada
feeela

25

/ var / log / apt berisi riwayat instalasi paket. Namun, secara default, ini dikelola oleh logrotateyang memampatkan dan menua entri lama.


Jadi apakah ini tempat terbaik bagi saya untuk memeriksa riwayat di Ubuntu Server?
Brettski

21

Pada 10,04 Klik (Sistem> Administrasi> Manajer Paket Synaptic> File> History)


11
Yang saya dapatkan hanyalah daftar paket yang saya instal melalui Synaptic, tidak menunjukkan semua paket yang saya perbarui melalui Update Manager.
Yesaya

19

Sebagai alternatif untuk jawaban lgarzo, Anda dapat mengambil dari grepmana Anda tertarik /var/log/dpkg.log. Misalnya, jika Anda ingin melihat semua yang Anda instal atau tingkatkan kemarin, Anda dapat menjalankan:

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

Satu hal yang perlu diperhatikan: ini juga akan mencantumkan paket yang diinstal secara manual ( sudo dpkg -i ...), yang tidak akan muncul dalam riwayat apt.

Bahkan lebih baik menggunakan zgrep jika sudah diinstal sehingga Anda dapat menemukan baris dalam file yang di-gzip juga

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

11

Sekarang dimungkinkan untuk melakukan ini melalui pusat perangkat lunak juga! Pergi ke Riwayat dan Anda dapat menampilkan semua pembaruan dan instalasi Anda.

Sejarah Pusat Perangkat Lunak


Saya kira itu 10,10?
vrcmr

Tentu saja. Saya tidak berpikir ini tersedia di distribusi sebelumnya ...
Nick Pascucci

3

Menjadi bermanfaat bagi kita untuk memiliki jawaban yang sedikit lebih mudah dan akurat untuk pertanyaan "kapan terakhir kali kita menambal hal ini?". Jadi saya menyatukan ini. Saya mengujinya pada 12,04 dan 14,04 dan 16,04. Ini mengembalikan jawaban yang cukup akurat untuk pertanyaan itu. Catatan: "cukup akurat" mungkin tidak "sepenuhnya akurat". Catatan: "hanya untuk pertanyaan itu".

keluaran sampel:

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

subrutin dan program:

#!/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";
}
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.