जवाबों:
Apt (apt-get) के साथ सभी क्रियाएं लॉग होती हैं। ये फाइलें / var / log / apt / में उपलब्ध हैं। सबसे हालिया इतिहास लॉग देखने के लिए, निष्पादित करें:
less /var/log/apt/history.log
इन लॉग को घुमाया जाता है (हर महीने मुझे लगता है), पुरानी फाइलों को एक संख्या और संपीड़ित के साथ प्रत्यय दिया जाएगा। तो अगला इतिहास लॉग देखने के लिए, उपयोग करें:
zless /var/log/apt/history.log.1.gz
उपलब्ध लॉग देखने के लिए:
ls -la /var/log/apt/
आप दिलचस्प सामग्री प्रदर्शित करने के लिए एक छोटी कमांड भी बना सकते हैं।
इस कस्टम फंक्शन को अपने साथ जोड़ें ~/.bashrc
:
### pars for fun: install | remove | rollback
function apt-history(){
case "$1" in
install)
grep 'install ' /var/log/dpkg.log
;;
upgrade|remove)
grep $1 /var/log/dpkg.log
;;
rollback)
grep upgrade /var/log/dpkg.log | \
grep "$2" -A10000000 | \
grep "$3" -B10000000 | \
awk '{print $4"="$5}'
;;
*)
cat /var/log/dpkg.log
;;
esac
}
और इसे एक टर्मिनल में इस तरह से कॉल करें:
kreso@h17:~$ apt-history install
2013-08-06 14:42:36 install gir1.2-nautilus-3.0:amd64 <none> 1:3.8.2-0ubuntu1~ubuntu13.04.1
2013-08-06 14:42:36 install python-nautilus:amd64 <none> 1.1-3ubuntu1
2013-08-06 14:42:37 install insync-nautilus:all <none> 1.0.20
2013-08-07 14:41:37 install powertop:amd64 <none> 2.1-0ubuntu1
2013-08-07 18:44:10 install libdiscid0:amd64 <none> 0.2.2-3build1
2013-08-07 18:44:11 install sound-juicer:amd64 <none> 3.5.0-0ubuntu1
यहां से ले गए
zgrep ... /var/log/dpkg.log*
- अभिलेखागार से भी प्रविष्टियों को आउटपुट करता है।
आप हाल ही में स्थापित पैकेजों को सूचीबद्ध करने के लिए निम्न कमांड का भी उपयोग कर सकते हैं
grep "\ install\ " /var/log/dpkg.log
grep "\ install\ " /var/log/apt/history.log
अगर आपको किसी सूची को apt-get
यदि आप चाहते हैं कि उन पैकेजों को स्थापित किया गया है और बाद में अनइंस्टॉल नहीं किया गया है , तो यह प्रयास करें:
comm -23 <(grep "apt-get install" /var/log/apt/history.log | sed 's/.* //' | sort) \
<(grep "apt-get remove" /var/log/apt/history.log | sed 's/.* //' | sort)
यह इंस्टॉल किया गया माइनस है जो किसी भी मिलान को हटाता है।
संदर्भ:
sort
, sort -u
दोनों मामलों में उपयोग करने के लिए डुप्लिकेट लाइनों से बचने के लिए जैसे पैकेज में oracle-java8-installer
और कई अन्य जैसे दिखाने के लिए ।
यहां बताया गया है कि आप वास्तव में ऐसा कैसे करते हैं, पैकेज मुटर कहते हैं:
_P=mutter &&
(cat /var/log/dpkg.log{,.1};zcat /var/log/dpkg.log.*.gz) |
egrep --text "^[^ ]* [^ ]* (configure|install|remove|status [^ ]*|trigproc|upgrade) $_P[: ]" |
sort --reverse | less
Dpkg.log का उपयोग उन ऑपरेशनों को कैप्चर करता है जो apt-get नहीं देखते हैं।
आउटपुट:
2016-12-20 09:47:35 status unpacked mutter:amd64 3.22.2-2ubuntu1~ubuntu16.10.1
2016-12-20 09:47:35 status installed mutter:amd64 3.22.2-2ubuntu1~ubuntu16.10.1
…
एक विशिष्ट पैकेज का अद्यतन इतिहास प्राप्त करने के लिए, यह स्थापित किया गया था / यहाँ एक oneliner (बैश और zgrep) के माध्यम से अद्यतन किया गया है, उदाहरण पैकेज skypeforlinux के लिए है:
package='skypeforlinux'; pregex="(${package}[^\)]+\))"; while read -r line; do [[ "$line" =~ ^Start-Date:[[:space:]]([[:digit:]].+) ]] && curdate="${BASH_REMATCH[1]} "; [[ "$line" =~ $pregex ]] && echo "$curdate ${BASH_REMATCH[1]}"; done < <(for i in `ls -tr /var/log/apt/history*`; do zgrep -B3 "$package" $i; done)
यह तारीख पाने के लिए पिछले तीन पंक्तियों सहित स्काइपफोर्लिंक्स के लिए apt के इतिहास लॉग फ़ाइलों को पूरा करता है। फिर परिणाम पर पुनरावृत्ति करता है और प्रासंगिक तिथियों और संस्करणों को गूँजता है।
अपने पैकेज के नाम के साथ पैकेज वैरिएबल मान को बदलें , यहां तक कि कई पैकेजों के लिए काम करता है बशर्ते वे एक ही स्ट्रिंग से शुरू करें।
आउटपुट के साथ उदाहरण:
package='apache'; pregex="(${package}[^\)]+\))"; while read -r line; do [[ "$line" =~ ^Start-Date:[[:space:]]([[:digit:]].+) ]] && curdate="${BASH_REMATCH[1]} "; [[ "$line" =~ $pregex ]] && echo "$curdate ${BASH_REMATCH[1]}"; done < <(for i in `ls -tr /var/log/apt/history*`; do zgrep -B3 "$package" $i; done)
2017-10-19 15:00:09 apache2-utils:amd64 (2.4.18-2ubuntu3.5)
2017-11-24 14:24:45 apache-pom-java:amd64 (10-2build1, automatic)
2018-02-22 16:42:02 apache2-data:amd64 (2.4.18-2ubuntu3.5, automatic)
2018-02-26 15:34:34 apache2:amd64 (2.4.18-2ubuntu3.5)
2018-02-26 15:36:32 apache2-data:amd64 (2.4.18-2ubuntu3.5)
2018-02-26 15:40:50 apache2-data:amd64 (2.4.18-2ubuntu3.5, automatic)
2018-02-26 15:42:07 apache2:amd64 (2.4.18-2ubuntu3.5)
2018-02-26 15:42:39 apache2:amd64 (2.4.18-2ubuntu3.5)
2018-03-15 10:08:50 apache-pom-java:amd64 (10-2build1)
2018-04-20 08:55:07 apache2-data:amd64 (2.4.18-2ubuntu3.5, 2.4.18-2ubuntu3.8)
2018-07-06 08:55:11 apache2-data:amd64 (2.4.18-2ubuntu3.8, 2.4.18-2ubuntu3.9)