![什么原因导致“缺少包:标题、MergeList 有问题、无法解析或打开包列表或状态文件”错误?](https://linux22.com/image/970254/%E4%BB%80%E4%B9%88%E5%8E%9F%E5%9B%A0%E5%AF%BC%E8%87%B4%E2%80%9C%E7%BC%BA%E5%B0%91%E5%8C%85%EF%BC%9A%E6%A0%87%E9%A2%98%E3%80%81MergeList%20%E6%9C%89%E9%97%AE%E9%A2%98%E3%80%81%E6%97%A0%E6%B3%95%E8%A7%A3%E6%9E%90%E6%88%96%E6%89%93%E5%BC%80%E5%8C%85%E5%88%97%E8%A1%A8%E6%88%96%E7%8A%B6%E6%80%81%E6%96%87%E4%BB%B6%E2%80%9D%E9%94%99%E8%AF%AF%EF%BC%9F.png)
我为公司的应用程序编写测试。其中一个测试尝试将应用程序从旧版本升级到新版本,以确保不会出现任何问题。当我安装旧版本的应用程序时,一些奇怪的事情开始发生。
有时一切顺利,没有任何问题,其他时候,当我尝试安装时,我收到此消息(公司应用程序名称被审查):
E: Encountered a section with no Package: header
E: Problem with MergeList /var/lib/apt/lists/XXX-amd64_Packages
E: The package lists or status file could not be parsed or opened.
使用与此类似的问题中提供的解决方案(例如这)。没有帮助,问题在第一次发生后会不断重复发生。
这让我相信创建软件包的 apt 服务器上出了问题,但搜索这些错误没有找到任何信息,除了我在链接的问题中建议的“修复”之外,我能找到的唯一其他信息来源也没有帮助(这里):
所以我在询问信息;
- 什么是实际的问题是什么?
- 什么原因问题?
- 什么可以使固定问题?
- 这不是以下内容的重复:尝试更新时,如何修复“MergeList 存在问题”或“无法解析状态文件”错误?我正在尝试找到问题的根本原因以防止该错误的发生。
编辑:谢谢这个很好的答案经过弗洛里安·迪施我终于解决了问题。通过追溯原因,发现包裹确实存在畸形,我开始尝试找出为什么格式不正确。原因是,作为我们严格测试的一部分,我同时执行了许多操作,似乎文件正在被写入两次这导致它有时会出现不好的部分。
答案1
该文件/var/lib/apt/lists/XXX-amd64_Packages
包含由空行分隔的不同部分。每个部分由多个字段组成,如下所示
KEY: VALUE
如果VALUE
包含多行,则每行必须以空格字符开头。
例如(我在这里删除了一些行):
Package: rapid-photo-downloader
Priority: optional
Section: graphics
Description: Photo and video importer from cameras, memory cards and other devices
Rapid Photo Downloader is written by a photographer for professional and
amateur photographers. It can download photos and videos from multiple
cameras, memory cards and Portable Storage Devices simultaneously. It
provides many flexible, user-defined options for subfolder creation,
photo and video renaming, and backup.
Python-Version: 2.7
每个部分描述一个包,并且需要有一个Package:
包含包名称的字段。
您收到此错误是因为其中一个部分没有字段Package:
。
找到此无效部分并尝试找出缺少该字段的原因:
- 检查服务器上相应的
Packages.gz
或文件Packages.bz2
- 检查
debian/control
相应.deb
包中的文件及其来源
我的第一个猜测是包含一个空白行的Description:
字段debian/control
。