Де я можу переглянути свою історію оновлень?


140

Чи є місце, де я можу переглянути які встановлені оновлення?

Відповіді:


132

Ви можете прочитати history.logфайл у /var/log/apt.

Напр. less /var/log/apt/history.log.


45

У 10.10 у програмному центрі Ubuntu представлений список усіх оновлень, які ви завантажували раніше.

введіть тут опис зображення


4
+1 Ця відповідь працює і в останніх версіях.
Джеймс Бредбері

4
@JamesBradbury Цю опцію пішло з Ubuntu 16.04 о
honoela

25

/ var / log / apt містить історію встановлення пакунків. Однак за замовчуванням керується ним, за допомогою logrotateякого стискаються та старіють записи.


Тож це найкраще місце для мене, щоб перевірити історію на сервері Ubuntu?
Бретцький

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

Звичайно, є. Я не думаю, що це було доступно в попередніх дистрибутивах ...
Нік Паскуччі

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";
}
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.