修复Ubuntu和其他Linux发行版中的“Unable to parse package file /var/lib/apt/lists”错误
如何解决在更新系统或者安装新软件时可能遇到的以下错误:
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目录中的所有内容,运行更新也会建立新的缓存的原因。