什么会导致“缺少包:标题,MergeList 问题,无法解析或打开包列表或状态文件”错误?

Inb*_*ose 6 aptitude apt dpkg

我为我公司的应用程序编写测试。其中一项测试尝试将应用程序从以前的版本升级到新版本,以确保没有任何问题。当我安装旧版本的应用程序时,一些奇怪的事情开始发生。

有时一切正常,没有任何问题,有时在尝试安装时我收到此消息(公司应用程序名称已审查):

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.
Run Code Online (Sandbox Code Playgroud)

使用与此类似的问题中提供的解决方案(像这样)。没有帮助,一旦第一次发生,问题就会不断重复。

这让我相信在创建包的 apt 服务器上出现了问题,但是搜索这些错误不会产生关于我链接的问题中建议的“修复”之外的任何信息,这是我能找到的唯一其他信息来源也没有帮助(这里):

所以我要求提供信息;

编辑:多亏了Florian Diesch 的精彩回答,我才能够解决我的问题。通过的原因追溯是在包装的实际畸形,我便开始试图找出为什么它的格式不正确。原因是作为我们严格测试的一部分,我同时进行了许多操作,而且文件似乎被写入了两次,这导致它有时会出现错误的部分。

Flo*_*sch 4

该文件/var/lib/apt/lists/XXX-amd64_Packages包含由空行分隔的不同部分。每个部分由多个字段组成,看起来像

 KEY: VALUE
Run Code Online (Sandbox Code Playgroud)

如果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
Run Code Online (Sandbox Code Playgroud)

每个部分描述一个包,并且需要有一个Package:包含包名称的字段。

您收到此错误是因为其中一个部分没有字段Package:

找到这个无效部分并尝试找出该字段缺失的原因:

  • 检查你服务器上对应的Packages.gz或者文件Packages.bz2
  • 检查debian/control对应.deb包中的文件及其来源

我的第一个猜测是包含空行的Description:字段debian/control