A resposta curta é: use aptitude
da seguinte forma:
aptitude -F%p search '?installed?not(?automatic)
Mas, infelizmente, este comando retorna muitos pacotes que correspondem à consulta, mas não são o que você espera, por dois motivos:
-
existem pacotes instalados durante a instalação inicial do sistema que resultam como não instalados automaticamente
Os pacotes -
instalados como dependências de um meta-pacote também podem ser obtidos como não instalados automaticamente
A solução a que cheguei há algum tempo é uma correspondência entre o comando anterior e os dpkg
logs, que pelo menos tentam remover a influência do ponto 1. na lista de problemas anterior:
#!/bin/bash
export LC_COLLATE=C
eval $(lesspipe)
vars=($(less $(ls -rt /var/log/dpkg.log*) | grep 'status installed grub-pc' | head -1))
date="${vars[0]}"
time="${vars[1]}"
join \
<(aptitude -F%p search '?installed?not(?automatic)' |
sort) \
<(less $(ls -rt /var/log/dpkg.log*) |
awk -v date=$date -v time=$time '(( == date && > time) || > date) && == "install" { print , , }' |
sort -u) |
awk '{ print , , }' |
sort
Isso assume que grub-pc
é o último pacote instalado durante a instalação inicial e não é perfeito, mas pode fornecer informações básicas para você começar.