Dovresti essere in grado di lavorare con un precedente file di stato valido e aggiornarlo da lì. Ogni volta che si esegue un'installazione o un aggiornamento, il file di stato viene salvato in un backup compresso in / var / backups . Fare un ls -l dpkg * nella directory mostra:
-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
C'è anche un backup del file creato nella directory / var / lib / dpkg / chiamata status-old. Fare uno stato ls -l * nella directory mostra:
-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
Quindi, per recuperare da una corruzione, dovresti essere in grado di fare quanto segue:
1. Eseguire un backup del file di stato corrotto :
mv /var/lib/dpkg/status /var/lib/dpkg/status_bkup
2. Copia un recente file di stato di dpkg in posizione da una delle fonti sopra:
o
cp /var/lib/dpkg/status-old /var/lib/dpkg/status
o
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. Quindi eseguire apt-get update:
sudo apt-get update
Questo dovrebbe farlo.
status
file: è una fonte primaria di informazioni, e sebbene molte di esse siano ridondanti, non tutte lo sono. Tuttavia è probabilmente possibile riparare il file manualmente. Pubblica un pezzo del file attorno alla linea problematica, ad esempio 20–40 righe, compresa almeno unaPackage:
riga prima e dopo la riga 15945.