Debian 控制文件“Provides”不满足依赖关系

Debian 控制文件“Provides”不满足依赖关系

用例

该包gnome-core取决于gnome-shell-extensions >=3.14.我想删除gnome-shell-extensions但为了满足依赖性,我必须用虚拟包替换它。我正在使用equivs它来创建一个替换虚拟包gnome-shell-extensions

我的equivs控制文件如下:

Section: misc
Priority: optional
Standards-Version: 3.9.2

Package: gnome-shell-extensions
Version: 1.0
Maintainer: Me Myself <[email protected]>
Provides: gnome-shell-extensions
Architecture: all
Description: gnome-shell-extensions dummy package to satisfy gnome dependencies

问题

构建的软件包显然提供了gnome-shell-extensions,但即使安装后,apt仍然抱怨gnome-core : depends on: gnome-shell-extensions (>= 3.14)

据我所知,Version控制文件中的字段与它无关,因为它只标记了虚拟包的版本。

解决方法

我已经成功地通过使用原始包名称 ie 来伪造原始包,Package: gnome-shell-extensions但我宁愿保留虚拟包名称。

问题

gnome-shell-extensions >=3.14在使用另一个包时,我必须做什么才能满足依赖性Provides: gnome-shell-extensions

答案1

您现在应该能够使用版本化Provides:

Provides: gnome-shell-extensions (= 3.14.2-1)

从 1.17.11 开始支持这一点dpkg,从 Debian 8 (Jessie) 开始也是如此。Debian 政策尚未更新以考虑这种可能性,因此它仍然声称两件事不再正确:

  • Provides:不能有版本限制;
  • 与版本约束的关系忽略虚拟包。

漏洞#761219跟踪文档更新。

相关内容