构建dosbox的一个依赖项是(由我在另一个配方上制作)mt32romdata包。它的目的是在程序包安装期间通过向用户询问它们来安装ROM的简单脚本,因此只有在每个使用包都被删除后才管理卸载(每个使用它的包,当前的dosbox和exult,都有应用的补丁来查找它把ROM放在哪里。
这是一个架构indep包(即:Architecture: all
; 不 any),因为它是一个简单的post-inst脚本。
Exult和dosbox包将它作为依赖项。现在很简单:我希望能够安装dosbox:i386(它的JIT在32位好得多)和exult 64位。实际的lib32emu库不是问题,因为exult捆绑了自己的版本,因此没有冲突。问题在于,当我尝试:
apt-get install dosbox:i386
吐出来:
dosbox:i386 : Depends: mt32romdata:i386 but it is not installable
我希望每个人都理解这与建筑独立包装的精神背道而驰。这只是dosbox包控制文件中的一个错误,我应该将运行时依赖项放在不同的地方:
Depends: ${shlibs:Depends}, ${misc:Depends}, mt32romdata
或者它是对ubuntu / debian的multiarch支持的限制?
提醒一下,在mt32romdata包控件架构定义中用'any'替换'all'并不吸引人,因为如果我想安装dosbox,两个版本都会发生冲突:i386和exult:amd64
答案 0 :(得分:0)
我相信我明白了。这似乎是一个新的字段Multiarch
处理的向后兼容性问题Dosbox恰好是(正确地)标记为Multiarch:foreign,这意味着mt32romdata架构:所有包也需要根据链接标记为Multiarch:foreign。