Esiste un approccio alternativo da riga di comando per ottenere la cronologia di installazione.
Il gestore dei pacchetti apt
sembra accedere a tutto /var/log/apt/history.log
e /var/log/apt/term.log
, inclusa la separazione di tutto da datestamp. Entrambi contengono informazioni simili e utilizzabili, ma term.log
sono entrambi più dettagliati e non indicano esplicitamente ciò che ha avviato l'operazione.
Registro cronologico
/var/log/apt/history.log
memorizza un breve riepilogo di ogni apt
corsa. Ecco un mio frammento per un'installazione manuale:
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
Il Commandline:
campo indica cosa ha attivato l'esecuzione e, nel caso di installazioni eseguite dal gestore aggiornamenti, dovrebbe apparire come:
Commandline: aptdaemon role='role-commit-packages' sender=':1.131'
... e c'è la tua lista di pacchetti, ordinati per data, metodo e azione (installa / aggiorna / rimuovi). Nota che se vuoi restituire questi pacchetti a apt-get remove ...
:
- Come accennato , questo rimuove completamente i pacchetti anziché ripristinarli. Le informazioni nei registri potrebbero certamente essere utilizzate per esaminare i pacchetti aggiornati, anche se il loro rollback è un'altra questione.
Dovrai eliminare le parentesi, il loro contenuto e il separatore di virgole dall'elenco tramite il tuo metodo preferito di manipolazione del testo (ad esempio sed
, vim
ecc.). Quindi, se volessi rimuovere i pacchetti nello snippet sopra, posso usare la linea relativamente direttamente:
sudo apt-get remove nautilus-dropbox:amd64 python-gpgme:amd64
Registro terminale
Generalmente /var/log/apt/term.log
è meno convenientemente strutturato ma, per completezza, è possibile ottenere le stesse informazioni. L'output del terminale è nuovamente delimitato da timestamp e le installazioni dei pacchetti possono essere ottenute da righe nel seguente formato:
Selecting previously unselected package nautilus-dropbox.
Di seguito è riportato un modo per stampare un elenco di pacchetti installati sul terminale per l'intero registro:
$ awk '/^Selecting/ {gsub(/\./,""); print $5}' /var/log/apt/term.log
Questo può essere adattato o esteso per ottenere installazioni in un intervallo di date.
apt-get remove
:sed 's/ ([^)]*)//g' | sed 's/,//g')
.