Debian包依赖配置:能否依赖A或同时依赖B、C、D?
实现Debian包的二选一依赖需求
当然能做到!完全不用额外添加元包,Debian的包依赖系统本身就支持这种灵活的逻辑组合写法,直接在你的包配置里搞定就行。
具体做法
在你自己创建的包的debian/control文件中,修改Depends字段,使用括号+逻辑或的语法来表达你的依赖规则:
Depends: old-package | (new-package-b, new-package-c, new-package-d)
语法说明
|符号代表逻辑“或”,只要满足任意一侧的条件,依赖就算达成- 括号内的
,代表逻辑“与”,必须同时安装括号里的所有三个新包,这一侧的条件才算满足 - 整个表达式的意思就是:系统里要么装了旧版的
old-package,要么同时装了new-package-b、new-package-c和new-package-d,两种情况都能让你的包正常安装运行
额外提醒
- 如果旧版包和三个新包不能共存(比如功能重叠会冲突),记得在
debian/control的Conflicts字段里添加对应的规则,避免用户误装导致问题 - 可以用
apt-get install your-package命令在不同环境下测试一下,确认依赖解析的逻辑符合你的预期
内容的提问来源于stack exchange,提问作者J. Valerio
相关产品推荐
相关产品推荐

