मैं अपना अद्यतन इतिहास कहां देख सकता / सकती हूं?


140

क्या कोई ऐसी जगह है जहां मैं देख सकता हूं कि मैंने कौन से अपडेट इंस्टॉल किए हैं?

जवाबों:


132

आप history.logफ़ाइल को पढ़ सकते हैं /var/log/apt

उदाहरण के लिए। less /var/log/apt/history.log


45

10.10 में, उबंटू सॉफ्टवेयर सेंटर में आपके द्वारा पूर्व में डाउनलोड किए गए सभी अपडेट की एक सूची है।

यहां छवि विवरण दर्ज करें


4
+1 यह उत्तर अधिक हाल के संस्करणों पर भी काम करता है।
जेम्स ब्रैडबरी

4
@JamesBradbury यह विकल्प उबंटू 16.04 से
फीतेला

25

/ var / log / apt में पैकेज इंस्टॉलेशन का इतिहास होता है। हालाँकि, डिफ़ॉल्ट रूप से, यह प्रबंधित किया जाता है, logrotateजो पुरानी प्रविष्टियों को संपीड़ित करता है और आयु करता है।


तो क्या मेरे लिए उबंटू सर्वर पर इतिहास की जांच करने के लिए यह सबसे अच्छी जगह है?
ब्रेट्स्की

21

10.04 पर (सिस्टम> प्रशासन> सिनैप्टिक पैकेज मैनेजर> फाइल> इतिहास) पर क्लिक करें


11
मेरे द्वारा प्राप्त सभी पैकेजों की एक सूची है जिसे मैंने Synaptic के माध्यम से स्थापित किया है, यह उन सभी पैकेजों को नहीं दिखाता है जिन्हें मैंने अपडेट मैनेजर के माध्यम से अपडेट किया था।
यशायाह

19

लार्जो के जवाब के विकल्प के रूप में, आप grepजिस चीज में रुचि रखते हैं , वह कर सकते हैं /var/log/dpkg.log। उदाहरण के लिए, यदि आप वह सब कुछ देखना चाहते हैं जिसे आपने कल स्थापित या अपग्रेड किया था, तो आप चला सकते हैं:

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

एक बात ध्यान दें: यह मैन्युअल रूप से स्थापित संकुल ( sudo dpkg -i ...) को सूचीबद्ध करेगा, जो कि उपयुक्त इतिहास में नहीं दिखाई देगा।

यदि यह स्थापित है तो भी बेहतर उपयोग 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 Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.