Para re-crear un /var/lib/dpkg/status tengo esto: #!/usr/bin/awk -f FNR == 1 { argind++ } argind == 1 { list[$0] = 1 } argind == 2 { if ($0 ~ "^Package:") { print $0 if ($2 in list) { installed = 1 print "Status: install ok installed" } else { installed = 0 print "Status: purge ok not-installed" print "" } } else { if (installed) { if ($0 !~ "^Filename:" && $0 !~ "^Size:" && $0 !~ "^MD5sum:") { print $0 } } } }
Se usa así: lista2status lista /var/lib/dpkg/available donde "lista" es la lista de paquetes instalados, que puedes obtener de forma semi-chapucera así: #!/bin/sh set -e cd /var/lib/dpkg/info ls *.list | sed -e 's/\.list//' | sort Puede que tengas que cambiar alguna cosa, porque hace mucho que no lo pruebo. Este script te lo doy sin ninguna garantía etc. etc. Si consigues algo te recomiendo que reinstales todo para completar el fichero status con la información sobre los conffiles, cosa que el script no hace: apt-get --reinstall install `cat lista` [ Por cierto, no hace falta preguntar las cosas tres veces... ]