Le distribuzioni basate su RPM come Red Hat sono facili:
rpm -qa --last
Su Debian e altre distribuzioni basate su dpkg, anche il tuo problema specifico è facile:
grep install /var/log/dpkg.log
A meno che il file di registro non sia stato ruotato, nel qual caso dovresti provare:
grep install /var/log/dpkg.log /var/log/dpkg.log.1
In generale, dpkg
e apt
non sembra tenere traccia della data di installazione, a causa della mancanza di un tale campo nella dpkg-query
pagina man.
E alla fine i vecchi /var/log/dpkg.log.*
file verranno eliminati con la rotazione del registro, quindi in questo modo non è garantito che ti fornisca l'intera cronologia del tuo sistema.
Un suggerimento che appare alcune volte (ad esempio questo thread ) è quello di guardare la /var/lib/dpkg/info
directory. I file lì suggeriscono che potresti provare qualcosa del tipo:
ls -t /var/lib/dpkg/info/*.list | sed -e 's/\.list$//' | head -n 50
Per rispondere alla tua domanda sulle selezioni, ecco un primo passaggio.
costruire un elenco di pacchetti per date
$ find /var/lib/dpkg/info -name "*.list" -exec stat -c $'%n\t%y' {} \; | \
sed -e 's,/var/lib/dpkg/info/,,' -e 's,\.list\t,\t,' | \
sort > ~/dpkglist.dates
costruire l'elenco dei pacchetti installati
$ dpkg --get-selections | sed -ne '/\tinstall$/{s/[[:space:]].*//;p}' | \
sort > ~/dpkglist.selections
unisciti alle 2 liste
$ join -1 1 -2 1 -t $'\t' ~/dpkglist.selections ~/dpkglist.dates \
> ~/dpkglist.selectiondates
Per qualche motivo non sta stampando molte differenze per me, quindi potrebbe esserci un bug o un'ipotesi non valida su cosa --get-selections
significhi.
È ovviamente possibile limitare i pacchetti utilizzando find . -mtime -<days>
o head -n <lines>
, e modificare il formato di output come desiderato, ad es
$ find /var/lib/dpkg/info -name "*.list" -mtime -4 | \
sed -e 's,/var/lib/dpkg/info/,,' -e 's,\.list$,,' | \
sort > ~/dpkglist.recent
$ join -1 1 -2 1 -t $'\t' ~/dpkglist.selections ~/dpkglist.recent \
> ~/dpkglist.recentselections
per elencare solo le selezioni installate (modificate?) negli ultimi 4 giorni.
Probabilmente potresti anche rimuovere i sort
comandi dopo aver verificato l'ordinamento utilizzato da dpkg --get-selections
e rendere il find
comando più efficiente.