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


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.