修复 reprepro 中损坏的文件列表

修复 reprepro 中损坏的文件列表

dput将包添加到本地 reprepro 实例时看到此消息:

...
Exporting indices...
Corrupted file list data for pool/main/q/qualys-cloud-agent/qualys-cloud-agent_2.6.0-88_all.deb
Corrupted file list data for pool/main/q/qualys-cloud-agent/qualys-cloud-agent_2.6.0-88_all.deb
Calculating packages to pull...
Installing (and possibly deleting) packages...
Exporting indices...
Deleting files no longer referenced..

我在 Debian buster 上运行 reprepro 5.3.0 版本。

如何修复(或删除)损坏的文件?

答案1

这看起来像是二进制包 () 本身的内部问题*.deb,与reprepro. (几乎)每个二进制包md5sums的控制组件中都包含一个文件。您可以使用以下命令查看它:

ar -x qualys-cloud-agent_2.6.0-88_all.deb    # extracts {control,data}.tar.xz
tar -xf control.tar.xz                       # extracts control,md5sums
cat md5sums

最好的解决方案是发布,qualys-cloud-agent_2.6.0-88.1这是2.6.0-88.在安装之前,请在本地安装它并使用(从包中)dput验证 md5sums 。debsumsdebsums

dpkg -i qualys-cloud-agent_2.6.0-88.1_all.deb
debsums -c qualys-cloud-agent

如果检查通过,您就可以dput <your_repo> qualys-cloud-agent_2.6.0-88.1_all.changes


升级软件包的版本非常重要,因为它将确保从您的存储库安装此软件包的任何人都能获得更新。如果你真的不想升级版本(也许你确定没有人使用过你的存储库);你可以:

reprepro -Vb /path/to/repo remove buster qualys-cloud-agent
reprepro -Vb /path/to/repo include buster qualys-cloud-agent_2.6.0-88_all.changes

如果debsums失败,则以下内容会很有用:

  • 知道你是如何构建你的包的 ( dpkg-buildpackage, cpack, dpkg-deb)
  • 查看摘录,/var/lib/dpkg/info/qualys-cloud-agent.md5sums以便我们查找任何格式问题
  • 知道你是否正在使用reprepro includedeb而不是reprepro include

相关内容