如何为依赖于官方程序包不受支持版本的项目创建deb二进制程序包

时间:2018-07-06 12:41:00

标签: linux debian packaging deb software-packaging

我想为应用程序创建一个deb软件包,以便可以在Debian和Ubuntu系统上方便地安装和更新它。但是,该应用程序依赖于一些常用库的更新版本,尽管这些库本身是由Debian和Ubuntu打包的,但我的应用程序所依赖的特定版本尚未得到任何发行版的正式支持,也无法作为deb软件包提供。它们仅作为源包提供,我必须自己构建这些源包才能使我的应用程序链接到它们。

此外,计划将Deb软件包仅在内部分发,并且没有计划或期望向公众发布Deb。如果那时符合发行版的包装准则,则必须支持官方包装。

使用Windows OS系列的IIRC,可以通过将依赖项与应用程序一起运输并将它们存储在存储应用程序可执行文件的同一文件夹中来缓解此问题。但是,我不知道一般应该在linux中,特别是在Debian和Ubuntu中如何解决这个问题。

有人知道创建一个deb软件包的最佳策略是什么,该软件包还捆绑了预装在Debian和Ubuntu中的较新版本的库吗?

1 个答案:

答案 0 :(得分:0)

在研究将第三方共享库捆绑到deb包中的方法时,我偶然发现this stackoverflow question上如何将共​​享库打包到ELF文件中。

创建独立的linux可执行文件似乎是捆绑第三方库的有趣替代方法。 ELF Statifier之类的工具似乎可以很好地完成这项工作。

在这种情况下,将第三方库捆绑在同一个deb软件包中仍然听起来像是生成软件包的正确方法,并且当然要考虑到这些第三方库的必需版本未分发或无法通过任何第三方获得方存储库。尽管将deb程序包添加为依赖项是更好的选择,但是在某些情况和用例中,此选项不可用。

因此,尽管仍然没有解决捆绑第三方共享库问题的解决方案,但是使用ELF Statifier之类的工具似乎是下一个最好的选择。