如何在 deb 控制文件中定义替代的依赖集?

如何在 deb 控制文件中定义替代的依赖集?

我正在编辑control一个 deb 包的文件,其中包含

Depends: nvidia-340 (>=340.29), nvidia-340-uvm (>=340.29), nvidia-340-dev (>=340.29),
nvidia-modprobe (>=340.29), nvidia-settings (>=340.29), libcuda1-340 (>=340.29), 
nvidia-libopencl1-340 (>=340.29), nvidia-opencl-icd-340 (>=340.29)

我想将依赖关系更改为所有条目,并强制在“所有包”或“所有包”nvidia-(...)-343-(...)之间进行选择。nvidia-(...)-340-(...)nvidia-(...)-343-(...)

讲座结束后Debian 软件包关系手册我只知道我可以指定nvidia-340 (>= 340.29)|nvidia-343 (>=343.0), nvidia-340-uvm (>=340.29)|nvidia-343-uvm (>=343.0), ...哪些允许nvidia-340与哪些一起安装,nvidia-343-uvm但这不是我想要的。

如何强制安装一个版本组的所有软件包?我正在寻找与具体软件包无关的通用解决方案(NVIDIA cuda 工具包来自http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64)。安装apt-get完成后应该就可以正常工作了。

答案1

您可以通过创建两个元包(仅包含依赖项)来实现您的目标,这两个元包提供一个虚拟包(用于声明其他包可以提供的某些功能)。所以:

Package: nvidia-dependencies-340
Provides: nvidia-dependencies
Depends: nvidia-340 (>=340.29), nvidia-340-uvm (>=340.29), nvidia-340-dev (>=340.29), etc...

Package: nvidia-dependencies-343
Provides: nvidia-dependencies
Depends: nvidia-343 (>=343.0), nvidia-343-uvm (>=343.0), nvidia-343-dev (>=343.0), etc...

Package: my-application
Depends: nvidia-dependencies

相关内容