Distribuições baseadas em RPM como Red Hat são fáceis:
rpm -qa --last
No Debian e em outras distribuições baseadas em dpkg, seu problema específico também é fácil:
grep install /var/log/dpkg.log
A menos que o arquivo de log tenha sido girado, nesse caso, você deve tentar:
grep install /var/log/dpkg.log /var/log/dpkg.log.1
Em geral, dpkg
e apt
não parecem rastrear a data da instalação, passando pela falta de tal campo na dpkg-query
página de manual.
E, eventualmente, os /var/log/dpkg.log.*
arquivos antigos serão excluídos pela rotação do log, para que não seja garantido que você tenha todo o histórico do seu sistema.
Uma sugestão que aparece algumas vezes (por exemplo, esta discussão ) é olhar para o /var/lib/dpkg/info
diretório. Os arquivos sugerem que você tente 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á uma primeira passagem.
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; portanto, pode haver um erro ou uma suposição inválida sobre o que --get-selections
significa.
Obviamente, você pode limitar os pacotes usando find . -mtime -<days>
ou head -n <lines>
e alterar o formato de saída como 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 sort
comandos depois de verificar a ordem de classificação usada dpkg --get-selections
e tornar o find
comando mais eficiente.