Reprepro添加相同的deb包

时间:2013-03-06 09:35:28

标签: debian packaging deb

我的debian repo出了问题。我删除了错误的包:

reprepro -Vb . remove package

这没关系,但是当我尝试使用下一个命令再次添加相同的包时:

reprepro -Vb . includedeb squeeze package

我得到了下一个输出:

Already existing files can only be included again, if they are the same, but:
md5 expected: 1035762e5e21e6ad8689660c0032f42d, got: 77ea3b094fcbfca4110afb5a9af0d2cb
sha1 expected: e41527e49bee98a59b3a5e16fbe856bb15a836bd, got: 5c6b673e5f11f1a80201e76d0fa4ba1d5935f095
sha256 expected: ae795de3b2d62f513b634a00c4bec74c90d2a6f750e5ec0386ee2b7775af39ec, got: 1531b2dd1869214afe58bb526fa8bda70db1bd1ef73d133bde002d42f147a041
size expected: 327748, got: 253398
There have been errors!

任何人都知道如何解决这个问题?我一直在检查代表人员,但我没有找到解决这种情况的解决方案。

3 个答案:

答案 0 :(得分:12)

你的第一个命令不应该有效; remove需要您要从中删除该包的分发的代号。

假设这只是一种错误,并且你像对includedeb一样对remove命令进行了“挤压”,你很可能在不同的发行版中仍然拥有相同的包。代表试图强制执行debian理想的“具有相同名称和完全相同版本的包具有完全相同的内容”,无论它们首次发布在哪个发行版中。

您可以reprepro ls $package查看它可能位于何处。一旦找到它,正确的做法就是reprepro copy它会从另一个地方挤回来。

答案 1 :(得分:4)

如果您在存档中支持多个发行版,则需要先删除所有发行版中的文件引用,然后才允许使用新文件包含deb。

reprepro ls之后,您可能希望对引用该文件的每个发行版使用reprepro remove {dist} {pkg}一次。

当所有引用都消失后,您可以includedeb新的引用。

答案 2 :(得分:1)

仅更改包名称中的版本是不够的,它也应该在控制文件中更改(二进制存档中的DEBIAN/control和源deb中的debian/control

您修改了deb包,因此必须为其提供不同的版本。通常,您应该更改行

Version: 1.2.3-something

要:

Version: 1.2.3-kioplays1 (...2, 3, etc)

或类似。

如果版本不同,您可以多次在回购中包含这些包。