Istnieje alternatywne podejście do pobierania historii instalacji z wiersza poleceń.
apt
Wygląda na to, że menedżer pakietów rejestruje wszystko /var/log/apt/history.log
i /var/log/apt/term.log
, w tym wszystko oddziela od znaczników danych. Oba zawierają podobne, użyteczne informacje, ale term.log
oba są bardziej szczegółowe i nie wskazują wprost, co zainicjowało operację.
Dziennik historii
/var/log/apt/history.log
przechowuje zwięzłe podsumowanie każdego apt
przebiegu. 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
, vim
etc.). 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.log
ma 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')
.