Distribuições baseadas em RPM, como Red Hat, são fáceis:
rpm -qa --last
No Debian e em outras distribuições baseadas no dpkg, seu problema específico também é fácil:
grep install /var/log/dpkg.log
A menos que o arquivo de registro tenha sido girado, você deve tentar:
grep install /var/log/dpkg.log /var/log/dpkg.log.1
Em geral, dpkg
e apt
parecem não acompanhar a data de instalação, devido à falta de tal campo na página dpkg-query
man.
E, por fim, os antigos arquivos /var/log/dpkg.log.*
serão excluídos pela rotação de log. Dessa forma, não é garantido que você tenha todo o histórico do seu sistema.
Uma sugestão que aparece algumas vezes (por exemplo, este tópico ) é examinar o diretório /var/lib/dpkg/info
.
Os arquivos sugerem que você pode tentar algo como:
ls -t /var/lib/dpkg/info/*.list | sed -e 's/\.list$//' | head -n 50
Para responder à sua pergunta sobre seleções, aqui está um primeiro passo.
construir lista de pacotes por datas
$ 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
construir lista de pacotes instalados
$ dpkg --get-selections | sed -ne '/\tinstall$/{s/[[:space:]].*//;p}' | \
sort > ~/dpkglist.selections
junte-se às 2 listas
$ join -1 1 -2 1 -t $'\t' ~/dpkglist.selections ~/dpkglist.dates \
> ~/dpkglist.selectiondates
Por alguma razão, não está imprimindo muitas diferenças para mim, então pode haver um erro ou uma suposição inválida sobre o que --get-selections
significa.
Você pode obviamente limitar os pacotes usando find . -mtime -<days>
ou head -n <lines>
e alterar o formato de saída da maneira que desejar, por exemplo,
$ 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
para listar apenas as seleções que foram instaladas (alteradas?) nos últimos 4 dias.
Você provavelmente também pode remover os comandos sort
depois de verificar a ordem de classificação usada por dpkg --get-selections
e tornar o comando find
mais eficiente.