修复Ubuntu和其他Linux发行版中的“Unable to parse package file /var/lib/apt/lists”错误

时间:2020-01-09 10:44:38  来源:igfitidea点击:

如何解决在更新系统或者安装新软件时可能遇到的以下错误:

Reading package lists… Error!
E: Unable to parse package file /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_bionic_InRelease
E: The package lists or status file could not be parsed or opened.

在Debian中可能会遇到类似的错误:

E: Unable to parse package file /var/lib/apt/extended_states (1)

"程序包缓存文件已损坏"

在基于Ubuntu和Debian的Linux发行版中处理"无法解析软件包文件"错误

这是我们需要做的。仔细查看Ubuntu抱怨的文件名和路径。

Reading package lists… Error!
E: Unable to parse package file /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_bionic_InRelease
E: The package lists or status file could not be parsed or opened.

例如,在上述错误中,它是在抱怨/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_bionic_InRelease

这使我们想到此文件不正确。现在,我们所需要做的就是删除该文件并重新生成缓存。

sudo rm <file_that_is_not_parsed>

使用以下命令:sudo rm /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_bionic_InRelease,然后使用sudo apt update命令重建缓存。

首先,我们应该转到文件存储的目录:

cd /var/lib/apt/lists/

现在删除未解析的文件:

sudo rm archive.ubuntu.com_ubuntu_dists_bionic_InRelease

现在,如果我们再次运行更新,将重新生成apt缓存。

sudo apt update

无法解析太多文件?

如何文件太多,可以执行以下操作来删除整个缓存,然后再次生成它:

sudo rm -r /var/lib/apt/lists/*
sudo apt update

说明

/ var / lib / apt是与apt软件包管理器相关的文件和数据的存储目录。 / var / lib / apt / lists是目录,用于存储系统的sources.list中指定的每个软件包资源的信息。

用/ var / lib / apt / lists稍微复杂一点来说,它存储软件包信息缓存。当我们要安装或者更新程序时,系统会在此目录中检查上述软件包中的信息。如果它在软件包上找到了详细信息,那么它将转到远程存储库并实际下载该程序或者其更新。

当我们运行“sudo apt update”时,它将构建缓存。这就是为什么即使删除/ var / lib / apt / lists目录中的所有内容,运行更新也会建立新的缓存的原因。