【问题标题】:Reprepro adding same deb packageReprepro 添加相同的 deb 包
【发布时间】:2013-02-21 00:33:54
【问题描述】:

我的 debian 存储库有问题。我删除了一个错误的包:

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,但没有找到解决这种情况的解决方案。

【问题讨论】:

  • 我不明白为什么你不能在区分大小写的操作系统中写出具有如此高级别的“I”大写。

标签: debian packaging deb


【解决方案1】:

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

假设这只是一个错误粘贴,并且您像对 includedeb 所做的那样对删除命令进行了“挤压”,那么您很可能在不同的发行版中仍然拥有相同的包。 Reprepro 试图强制执行“具有相同名称和完全相同版本的软件包具有完全相同的内容”的 debian 理想,无论它们最初是在哪个发行版中发布的。

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      【解决方案3】:

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

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

      Version: 1.2.3-something
      

      收件人:

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

      或类似的。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-08-25
        • 1970-01-01
        • 2011-11-02
        • 1970-01-01
        • 1970-01-01
        • 2014-08-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多