10

我的 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!

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

4

3 回答 3

13

您的第一个命令不应该起作用;remove需要您要从中删除该软件包的发行版的代号。

假设这只是一个错误粘贴,并且您像对includedeb. Reprepro 试图强制执行“具有相同名称和完全相同版本的软件包具有完全相同的内容”的 debian 理想,无论它们最初是在哪个发行版中发布的。

您可以reprepro ls $package查看它可能仍然位于的位置。一旦你找到它,正确的做法就是把reprepro copy它从另一个地方挤回去。

于 2013-03-07T17:31:16.437 回答
5

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

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

当所有参考资料都消失后,您可以includedeb创建一个新的参考资料。

于 2013-05-30T16:58:09.333 回答
2

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

你修改了一个 deb 包,所以你必须给它一个不同的版本。通常,您应该更改行

Version: 1.2.3-something

到:

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

或类似的。

如果版本不同,您将能够在 repo 中多次包含这些包。

于 2016-08-10T09:19:57.893 回答