如何在不同的Ubuntu版本之间创建软件包?

我是一些软件的作者,它依赖于libxx6(在Ubuntu 11.10中),但在12.04中,该软件包变成了libxx7(7不是Ubuntu版本号),所以依赖关系成为一个问题。
我该如何解决这个问题?我正在管理一个PPA,并希望在Ubuntu 12.04发布之前修复它。
谢谢!
3个回答

如果有一个通用的版本免费包可以依赖(例如在Java情况下:java-runtime vs. e.g. java6-runtime),请依赖它。如果没有,您必须为不同版本的Ubuntu制作专门的软件包。查看您所依赖的软件包的control文件,并查看它是否提供了更通用的依赖项。

假设您的软件包将针对libxx6libxx7编译通过,在您的debian/control文件的Build-Depends字段中使用libxx-dev。然后在Depends字段中使用${shlibs:Depends}。这将自动替换为与您的软件包构建所使用的共享库版本匹配的版本。
有关共享库的更详细信息,请参阅 Debian政策手册第8章

如果相同的源代码将在所有版本上构建,那么非常简单。你需要为每个Ubuntu版本单独构建(上传)它。你将不得不使用稍微不同的版本号,我建议在版本号后面添加~releasename1