为我的本地存储库创建索引后,更新时出现此错误。
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 生成器脚本,现在所有文件都可以正常工作了。