是否可以为Debian软件包中的冲突指定一系列版本?

时间:2012-08-16 21:31:40

标签: dependencies version debian conflict

我有一个Debian软件包(我们称之为foo),我将其拆分为两部分(foofoo-icons)。之前的软件包有三个已发布的版本(比如1.5,2.3和3.1)。拆分的新软件包在所有三个版本中都是通用的。如何确保新包与旧版本的正确版本冲突?

我的问题有两方面:

  1. 如何与各种版本冲突。即。

    Conflicts: foo (>= 2.0 & <= 2.3)
    
  2. 如何与新foo-icons包的多个(范围)版本发生冲突?

    逻辑上,我想要的是:

    Conflicts: foo (<= 1.5) & foo (>= 2.0 & <= 2.3) & foo (>= 3.0 & <= 3.1)
    
  3. 这有可能吗?如果没有,我有什么替代品?我是否需要将原始包裹foo重命名为foo1或某些人?)

1 个答案:

答案 0 :(得分:2)

<强> 1。我如何与一系列版本冲突

Conflicts: foo (>= 2.0), foo (<= 2.3)

<强> 2。如何与新foo-icons包的多个(范围)版本冲突?

我认为你不能这样做,但为什么不用foo增加分割Confict包(例如3.2)和foo (<< 3.2)的版本?< / p>

此外,来自Debian Policy Manual

如果在其中一个软件包的更高版本中更正了冲突的原因,则Conflicts条目可能具有“早于”版本子句。但是,通常存在“早于”版本的子句是Breaks应该使用的标志。 Conflicts中的“早于”版本子句阻止dpkg升级或安装声明此类冲突的程序包,直到冲突程序包的升级或删除完成为止,这是一个强大的限制。