Yanıtlar:
Apt (apt-get) ile yapılan tüm eylemler günlüğe kaydedilir. Bu dosyalar / var / log / apt / dizininde bulunur. En son geçmiş günlüğü görüntülemek için, yürütün:
less /var/log/apt/history.log
Bu günlükler döndürülür (her ay sanırım), eski dosyalara bir sayı eklenir ve sıkıştırılır. Böylece bir sonraki geçmiş günlüğünü görüntülemek için şunu kullanın:
zless /var/log/apt/history.log.1.gz
Kullanılabilir günlükleri görüntülemek için:
ls -la /var/log/apt/
Ayrıca ilginç içeriği görüntülemek için kısa bir komut da verebilirsiniz.
Bu özel işlevi aşağıdakilere ekleyin ~/.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
}
Ve buna benzer bir terminalde arayın:
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
Buradan alındı
zgrep ... /var/log/dpkg.log*
- girdileri de arşivlerden çıkarır.
Son yüklenen paketleri listelemek için aşağıdaki komutu da kullanabilirsiniz
grep "\ install\ " /var/log/dpkg.log
grep "\ install\ " /var/log/apt/history.log
listeyi apt-get içine kopyalayıp yapıştırmanız
Eğer takıldı ve o paketleri istiyorsanız değil daha sonra kaldırılması, bu deneyin:
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)
Bu yükleme eksi herhangi bir eşleşen kaldırır.
Referanslar:
sort
kullanın . sort -u
oracle-java8-installer
İşte aslında bunu nasıl yapıyorsunuz, paket paketini söyleyin:
_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 kullanılarak apt- get'in görmediği işlemleri yakalar.
Çıktı:
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
…
Belirli bir paketin güncelleme geçmişini öğrenmek için apt ile yüklendiğini / güncellendiğini varsayarak bir oneliner (bash ve zgrep), örnek skypeforlinux paketi içindir:
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)
Bu, tarihin önceki üç satırını da içeren skypeforlinux için geçmişin günlük dosyalarını greps eder. Sonra sonuç üzerinde tekrar eder ve ilgili tarih ve sürümleri tekrarlar.
Değiştir paket hatta birden paketler için çalışır, sizin paket adıyla değişken değeri aynı dizeyle başlayan sağladı.
Çıktı ile örnek:
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)