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

问题描述

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

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

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

所以基本上我想指定我对次要版本 3 和从 5 到 9 的次次要版本没问题

举个例子

# 我的规格应该允许低于
bar-2.3.5, bar-2.3.6, ... , bar-2.3.9

# 我的规格应该不允许低于
bar 2.2.X、bar 2.3.4、bar 2.4.X、bar 3.XY、

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

# 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但这并没有为我提供足够的方向

谢谢你的帮助

标签: debianpackagingapt

解决方案


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

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

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

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

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

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


推荐阅读