dpkg -l
lista todos os pacotes instalados (na lista quando você o filtra direito). Você pode obter a mesma lista com dpkg --get-selections
(que não requer mais filtragem).
Isso perde informações sobre pacotes manuais vs. instalados automaticamente. É muito conveniente ter bibliotecas e outros pacotes marcados como apenas indiretamente necessários. Pacotes marcados como instalados automaticamente podem ser removidos ou substituídos por pacotes diferentes sem problemas. O Dpkg não sabe sobre pacotes instalados automaticamente, apenas o apt faz.
Para listar os pacotes instalados manualmente, você pode usar o aptitude:
aptitude search -F %p '~i !~M' >reinstallList.txt
Sem aptidão, é um pouco mais complicado.
dpkg --get-selections | awk '$2 == "install" {print $1}' >installed.txt
apt-mark showauto >automatic.txt
comm -32 installed.txt automatic.txt >reinstallList.txt
Para instalar todos os pacotes que foram instalados anteriormente:
apt-get install $(cat reinstallList.txt)
Como alternativa, você pode usar o método mais rotativo de copiar a lista de pacotes instalados e, em seguida, restaurar a lista de pacotes marcados como automáticos. Para fazer o backup:
dpkg --get-selections >selections.txt
apt-mark showauto >automatic.txt
Para restaurar:
dpkg --set-selections <selections.txt
apt-get dselect-upgrade
apt-mark markauto $(cat automatic.txt)