您应该能够使用先前已知的良好状态文件并从那里进行更新。每次执行安装或更新时,状态文件都会保存到/ var / backups下的gzip 备份中。在目录上执行ls -l dpkg *显示:
-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
在/ var / lib / dpkg /目录中创建的文件的备份也名为status-old。在目录上执行ls -l status *显示:
-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
因此,要从损坏中恢复,您应该能够执行以下操作:
1.备份损坏的状态文件:
mv /var/lib/dpkg/status /var/lib/dpkg/status_bkup
2.从以上任一来源复制最新的dpkg状态文件:
要么
cp /var/lib/dpkg/status-old /var/lib/dpkg/status
要么
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.然后运行apt-get update:
sudo apt-get update
那应该做。
status
文件:它是信息的主要来源,尽管其中很多是多余的,但并非全部。但是,可能可以手动修复文件。发表周围有问题的行文件的块,说20-40线包括至少一个Package:
之前和之后的一行行15945.