![如何使用配方来处理跨发行版的 PPA 软件包依赖关系变化](https://linux22.com/image/1107091/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%E9%85%8D%E6%96%B9%E6%9D%A5%E5%A4%84%E7%90%86%E8%B7%A8%E5%8F%91%E8%A1%8C%E7%89%88%E7%9A%84%20PPA%20%E8%BD%AF%E4%BB%B6%E5%8C%85%E4%BE%9D%E8%B5%96%E5%85%B3%E7%B3%BB%E5%8F%98%E5%8C%96.png)
我正在使用配方将程序打包在我的 ppa 中。从 Oneiric 开始,似乎一些依赖项位置已经发生了变化。特别是 libQtCore.so(以及几个其他 QT 库)。应用程序的所有旧版本都可以构建,但 Oneiric 和 Precise 无法从旧配方构建。我可以在本地处理这个问题,因为我可以在规则文件中更改库位置。
我想知道如何在我的 ppa 中最好地处理这个问题。我是否应该在自己的 repo 中有一个单独的 debian 文件,该文件特定于发行版,获取提取 debian 文件的配方并在构建时合并?然后为每个发行版设置单独的配方?
或者我可以直接在菜谱中处理这个问题吗?
或者有没有我还没想到的更好的方法。
谢谢
答案1
从技术上讲,您可以run
在配方中添加一行来执行一些脚本,该脚本根据目标分布在文件中执行替换debian/rules
。但是,这仅在本地运行时才有效,bzr build
因为run
如前所述,启动板不支持此功能这里(我猜这是出于安全考虑)。
因此,我的建议是使用两个不同的配方指向打包文件的不同分支,并针对适当的分布启动每个配方。