这是关于 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但这并没有为我提供足够的方向
感谢您的帮助
我验证了这种规范方式确实有效
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
所以虽然我有工作的灵魂, 我仍在寻找一种更优雅的方式欢迎更多答案(所以我的答案不被接受)
要指定 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
一次。