Istnieje alternatywne podejście do pobierania historii instalacji z wiersza poleceń.
aptWygląda na to, że menedżer pakietów rejestruje wszystko /var/log/apt/history.logi /var/log/apt/term.log, w tym wszystko oddziela od znaczników danych. Oba zawierają podobne, użyteczne informacje, ale term.logoba są bardziej szczegółowe i nie wskazują wprost, co zainicjowało operację.
Dziennik historii
/var/log/apt/history.logprzechowuje zwięzłe podsumowanie każdego aptprzebiegu. Oto mój fragment do ręcznej instalacji:
Start-Date: 2014-08-22 17:17:52
Commandline: apt-get install nautilus-dropbox
Install: nautilus-dropbox:amd64 (1.6.1-1), python-gpgme:amd64 (0.3-0ubuntu3, automatic)
End-Date: 2014-08-22 17:19:13
Commandline:Pole wskazuje co spowodowało bieg, aw przypadku instalacji wykonanych przez menedżera aktualizacji powinno to wyglądać mniej więcej tak:
Commandline: aptdaemon role='role-commit-packages' sender=':1.131'
... i twoja lista pakietów, posortowana według daty, metody i działania (zainstaluj / uaktualnij / usuń). Pamiętaj, że jeśli chcesz przekazać te pakiety z powrotem do apt-get remove ...:
- Jak wspomniano , powoduje to całkowite usunięcie pakietów zamiast ich przywracania. Informacje w dziennikach można z pewnością wykorzystać do sprawdzenia zaktualizowanych pakietów, choć ich wycofanie to inna sprawa.
Trzeba rozebrać się nawiasów ich treści i Separator z listy poprzez preferowanej metody manipulacji tekstu (na przykład sed, vimetc.). Więc jeśli chcę usunąć pakiety z powyższego fragmentu, mogę użyć linii stosunkowo bezpośrednio:
sudo apt-get remove nautilus-dropbox:amd64 python-gpgme:amd64
Dziennik terminali
Zasadniczo /var/log/apt/term.logma mniej dogodną strukturę, ale dla kompletności możesz uzyskać te same informacje. Wyjście terminala jest ponownie ograniczane znacznikami czasu, a instalacje pakietów można uzyskać z wierszy o następującej formie:
Selecting previously unselected package nautilus-dropbox.
Oto jeden ze sposobów drukowania listy zainstalowanych pakietów do terminala dla całego dziennika:
$ awk '/^Selecting/ {gsub(/\./,""); print $5}' /var/log/apt/term.log
Można to dostosować lub rozszerzyć, aby uzyskać instalacje w zakresie dat.
apt-get remove:sed 's/ ([^)]*)//g' | sed 's/,//g').