如何在 Debian 软件包控制文件“Depends:”“Pre-Depends”子句中指定次要版本的范围

问题描述 投票:0回答:2

这是关于 ubuntu 软件包的 debian 控制文件。

我需要在“Depends:”/“Pre-Depends”子句中指定依赖项列表,其中包含如下所示的包

我的包裹是“foo”。这取决于包“bar”。 “bar”的允许版本是 2.X.Y,其中 X=3 且 Y>=5(我们将 2 称为主要版本,X 称为次要版本,Y 称为次要版本)

所以基本上我想表明我可以接受次要版本 3 和从 5 到 9 的次要版本

举个例子

#我的规格应该允许以下版本
酒吧-2.3.5, 酒吧-2.3.6, ... , 酒吧-2.3.9

#我的规格应该不允许以下版本
酒吧2.2.X, 栏 2.3.4, 酒吧2.4.X, 条 3.X.Y,

所以问题是 - 在我的控制文件中,下面是指定的正确方法?

# Control file 
Package: foo 
Depends: bar (>=2.3.5), bar(<<2.4.0)

有没有更紧凑/合适的方法?

特别是如果我进行简化的需求更改 - 并说我可以接受次要版本 .5 和任何次要版本( 2.5.X - ),那么 有没有办法匹配( 2.5.0,...,到 2.5.9) 使用单个 == 之类的表达式 ?

我查看了https://www.debian.org/doc/debian-policy/ch-relationships.html但这并没有为我提供足够的方向

感谢您的帮助

debian packaging apt
2个回答
1
投票

我验证了这种规范方式确实有效

Package: foo
Version: X.X.X
... 
Depends: bar (>=2.3.5),  bar (<<2.4.0)

然而,这样做的不良副作用是,如果我使用“apt cache dependent”检查“foo”的依赖关系,依赖关系“bar”会出现两次

只是为了好玩。如果你懂印地语,你可能会说依赖项出现了 bar bar :-)

  #apt-cache depends foo
  PreDepends: bar
  PreDepends: bar

所以虽然我有工作的灵魂, 我仍在寻找一种更优雅的方式欢迎更多答案(所以我的答案不被接受)


0
投票

要指定 Debian 软件包控制文件中允许的版本范围,请使用

Depends
Conflicts
指令的组合:

Package: foo
Version: X.X.X
... 
Depends: bar (>= 2.3.5)
Conflicts: bar (<< 2.4.0)

这相当于:

Depends: bar (>= 2.3.5), bar (<< 2.4.0)

但在运行

bar
时只会列出
apt-cache depends foo
一次。

© www.soinside.com 2019 - 2024. All rights reserved.