我是一些软件的作者,它依赖于 libxx6(在 ubuntu 11.10 中),但是在 12.04 中,软件包变成了 libxx7(7 不是 Ubuntu 版本号),因此依赖性成为一个问题。
我该如何解决这个问题?我正在管理一个 PPA,我想在 Ubuntu 12.04 发布之前修复它。
谢谢 !
答案1
如果存在您可以依赖的通用无版本软件包(例如 Java 案例:java-runtime
vs. eg java6-runtime
),则依赖该软件包。如果没有,则必须为不同版本的 Ubuntu 制作专用软件包。查看您依赖的软件包的文件control
,看看是否有Provides
您可以依赖的更通用的软件包。
答案2
假设您的软件包将针对libxx6
和进行编译,只需在文件的字段中libxx7
输入 us 即可。然后在字段 us中。这将自动替换为您的软件包构建所针对的共享库的版本。libxx-dev
Build-Depends
debian/control
Depends
${shlibs:Depends}
有关共享库的更多详细信息,请参阅Debian 政策手册第 8 章。
答案3
如果所有版本都使用相同的源代码构建,那么就很容易了。您可以为每个 Ubuntu 版本单独构建(上传)。您必须使用略有不同的版本号,我建议添加~releasename1