Para backup:
sudo dpkg --get-selections > /tmp/dpkglist.txt
Para restaurar:
sudo dpkg --set-selections < /tmp/dpkglist.txt
sudo apt-get -y update
sudo apt-get dselect-upgrade
Veja também esta questão para mais opções e informações: Ubuntu, como configurar uma nova máquina como uma existente
Eu tenho a execução acima em um cronjob diário que verifica o dpgklist no SVN como parte do nosso inventário de servidores. Isso permitirá que você mantenha um inventário razoavelmente preciso de pacotes instalados em seus servidores e seja fácil fazer uma rápida comparação lado-a-lado para ver se um servidor está faltando um pacote em particular.