E:遇到没有 Package: 标头的部分

E:遇到没有 Package: 标头的部分

为我的本地存储库创建索引后,更新时出现此错误。

E: Encountered a section with no Package: header
E: Problem with MergeList /var/lib/apt/lists/_home_soroush_repository_dists_precise_local_binary-amd64_Packages
E: The package lists or status file could not be parsed or opened.
E: _cache->open() failed, please report.

然后包管理器就不能用了。我知道生成的索引文件有问题,dpkg-scan-packages但找不到它。

我使用这个脚本维护我的仓库并且它长期正常工作:

#!/bin/bash
for dist in "precise" #"oneiric"
do
    for component in "local"
    do
        for architecture in "amd64" # "i386" "all" 
        do
            echo "Generating package index for $dist $component $architecture..." 
            dpkg-scanpackages -a $architecture pool/local /dev/null | gzip -9c > dists/$dist/local/binary-$architecture/Packages
        done
    echo "Generating source index for $dist $component $architecture..." 
    dpkg-scansources pool/local > dists/$dist/local/sources/Sources
    done
done

我的问题是如何找到导致索引文件出现问题的包?应该有某种解析器...

答案1

所以,这有点奇怪,我正在回答我自己的问题!:D

这可能会对某些人有所帮助。我发现唯一的问题是生成的索引的文件名。它应该以 .gz 扩展名结尾。以前Packages是可以接受的,dpkg现在他期望Packages.gz。这是一条新规则,同时,debian 团队中的某个人决定这样做!我更新了我的本地 repo 生成器脚本,现在所有文件都可以正常工作了。

相关内容