Vous devriez être en mesure de travailler avec un fichier de bon état connu et de le mettre à jour à partir de là. Chaque fois que vous effectuez une installation ou une mise à jour, le fichier d'état est enregistré dans une sauvegarde compressée sous / var / backups . Faire un ls -l dpkg * sur le répertoire montre:
-rw-r--r-- 1 root root 2266732 2010-09-30 08:35 dpkg.status.0
-rw-r--r-- 1 root root 624182 2010-09-29 08:49 dpkg.status.1.gz
-rw-r--r-- 1 root root 623844 2010-09-28 08:55 dpkg.status.2.gz
-rw-r--r-- 1 root root 620358 2010-09-24 11:04 dpkg.status.3.gz
-rw-r--r-- 1 root root 619021 2010-09-23 15:34 dpkg.status.4.gz
-rw-r--r-- 1 root root 619013 2010-09-23 08:03 dpkg.status.5.gz
-rw-r--r-- 1 root root 618968 2010-09-21 08:33 dpkg.status.6.gz
Il existe également une sauvegarde du fichier créé dans le répertoire / var / lib / dpkg / nommé status-old. Faire un état ls -l * sur le répertoire montre:
-rw-r--r-- 1 root root 2266732 2010-09-30 08:35 status
-rw-r--r-- 1 root root 2267191 2010-09-30 08:35 status-old
Ainsi, pour récupérer d'une corruption, vous devriez pouvoir effectuer les opérations suivantes:
1. Effectuez une sauvegarde du fichier d'état corrompu :
mv /var/lib/dpkg/status /var/lib/dpkg/status_bkup
2. Copiez un fichier d'état récent de dpkg en place à partir de l'une des sources ci-dessus:
non plus
cp /var/lib/dpkg/status-old /var/lib/dpkg/status
ou
cp /var/backups/dpkg.status.#.gz /var/lib/dpkg/
gunzip -d /var/lib/dpkg/dpkg.status.#.gz
mv /var/lib/dpkg/dpkg.status.# /var/lib/dpkg/status
3. Exécutez ensuite la mise à jour apt-get:
sudo apt-get update
Ça devrait le faire.
status
fichier: c'est une source principale d'informations, et bien qu'une grande partie soit redondante, ce n'est pas tout. Cependant, il est probablement possible de réparer le fichier manuellement. Postez une partie du fichier autour de la ligne problématique, disons 20 à 40 lignes, dont au moins unePackage:
ligne avant et après la ligne 15945.