“无法解析或打开包列表或状态文件”

每次我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

我该怎么办 ? 我承认,我的驱动器有坏道,这可能是原因吗? 还有什么我可以做的吗?

尝试使用旧的状态文件,

 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运行没有问题。

信用转到这篇文章。

我有一个类似的错误,但问题不在于dpkg.status ,而是在apt列表中。

要检查可能的原因,请运行strace -efile apt install something 。 然后查找错误消息显示之前访问的最后一个文件:

 stat("/var/lib/apt/lists/linux.dropbox.com_ubuntu_dists_xenial_main_i18n_Translation-en%5fUS.uncompressed", 0x7fffd2f39d00) = -1 ENOENT (No such file or directory) stat("/var/lib/apt/lists/linux.dropbox.com_ubuntu_dists_xenial_main_i18n_Translation-en%5fUS", 0x7fffd2f39e50) = -1 ENOENT (No such file or directory) stat("/var/lib/apt/lists/www.fossology.org_releases_2.6.2_Ubuntu_dists_14.04_InRelease", 0x7fffd2f39d10) = -1 ENOENT (No such file or directory) stat("/var/lib/apt/lists/www.fossology.org_releases_2.6.2_Ubuntu_dists_14.04_Release", {st_mode=S_IFREG|0644, st_size=0, ...}) = 0 stat("/var/lib/apt/lists/www.fossology.org_releases_2.6.2_Ubuntu_dists_14.04_InRelease", 0x7fffd2f396d0) = -1 ENOENT (No such file or directory) stat("/var/lib/apt/lists/www.fossology.org_releases_2.6.2_Ubuntu_dists_14.04_Release", {st_mode=S_IFREG|0644, st_size=0, ...}) = 0 stat("/tmp", {st_mode=S_IFDIR|S_ISVTX|0777, st_size=57344, ...}) = 0 open("/tmp/fileutl.message.XlglFW", O_RDWR|O_CREAT|O_EXCL, 0600) = 5 unlink("/tmp/fileutl.message.XlglFW") = 0 open("/var/lib/apt/lists/www.fossology.org_releases_2.6.2_Ubuntu_dists_14.04_Release", O_RDONLY) = 6 open("/var/lib/apt/lists/www.fossology.org_releases_2.6.2_Ubuntu_dists_14.04_Release", O_RDONLY) = 5 stat("/var/lib/apt/lists/www.fossology.org_releases_2.6.2_Ubuntu_dists_14.04_Release", {st_mode=S_IFREG|0644, st_size=0, ...}) = 0 Reading package lists... Done E: The package lists or status file could not be parsed or opened. +++ exited with 100 +++ 

在我的例子中,最后一个文件(来自fossology的Release文件)结果是0字节长。 删除该存储库使其能够恢复正常function