问题描述
每次我sudo apt-get update
它总是不完整,最后会说
E: Read error - read (5: Input/output error)
E: The package lists or status file could not be parsed or opened.
同样,当我尝试安装某些东西并做sudo apt-get install <some app>
时
我该怎么办 ?我承认,我的驱动器有坏道,这可能是原因吗?还有什么我可以做的吗?
最佳解决思路
尝试使用较旧的状态文件,
sudo mv /var/lib/dpkg/status /var/lib/dpkg/status.bad
sudo cp /var/lib/dpkg/status-old /var/lib/dpkg/status
sudo apt-get update
次佳解决思路
这是一个老问题,但仅仅是为了存档目的……以下是在我的情况下解决这个问题的原因:
sudo rm /var/lib/apt/lists/* -vf
sudo apt-get clean
sudo apt-get update
第三种解决思路
我遇到了类似的错误:
Reading package lists... Error!
E: Encountered a section with no Package: header
E: Problem with MergeList /var/lib/dpkg/status
E: The package lists or status file could not be parsed or opened.
我遵循类似的建议来复制status-old
。
$ head /var/lib/dpkg/status
$ head /var/lib/dpkg/status-old
由于某种原因,我的所有状态文件都是空白的。幸运的是,我发现这些文件有备份:
$ ls -l /var/backups/dpkg.status.*
-rw-r--r-- 1 root root 444620 Nov 15 06:33 /var/backups/dpkg.status.0
-rw-r--r-- 1 root root 444620 Nov 15 06:33 /var/backups/dpkg.status.1.gz
-rw-r--r-- 1 root root 128168 Sep 20 2013 /var/backups/dpkg.status.2.gz
-rw-r--r-- 1 root root 112545 Sep 16 2013 /var/backups/dpkg.status.3.gz
-rw-r--r-- 1 root root 107767 Sep 14 2013 /var/backups/dpkg.status.4.gz
-rw-r--r-- 1 root root 107766 Sep 11 2013 /var/backups/dpkg.status.5.gz
-rw-r--r-- 1 root root 94583 Sep 11 2013 /var/backups/dpkg.status.6.gz
我检查了最新的备份……
$ head /var/backups/dpkg.status.0
……但它仍然是空白的。所以我解开了一个较旧的…
$ gunzip /var/backups/dpkg.status.1.gz
$ head /var/backups/dpkg.status.1
这次有内容。所以我复制了它……
$ cp /var/backups/dpkg.status.1 /var/lib/dpkg/status
然后apt-get update
运行没有问题。