我想为一个应用程序创建一个deb包,以便在deb I an和Ubuntu系统上方便地安装和更新它。但是,应用程序依赖于一些公共库的新版本,尽管这些库本身由Debian和Ubuntu打包,但是我的应用程序所依赖的特定版本还没有得到任何发行版的正式支持,也不能作为deb包提供。它们只能作为源程序包提供,我必须自己构建这些源程序包才能使我的应用程序链接到它们。
此外,deb计划只在内部分发,没有向公众发布deb的计划或预期。如果当时遵守发行版的包装指导原则,并支持正式的包装将是一项要求。
IIRC与Windows操作系统系列通过将依赖项与应用程序一起传送并将它们存储在存储应用程序可执行文件的同一文件夹中来缓解此问题。但是,我不知道这个问题应该如何在linux中处理,特别是在Debian和Ubuntu中。
有人知道创建一个deb包的最佳策略是什么吗?这个包还捆绑了Debian和Ubuntu中预装的新版本的库?

最佳答案

在研究如何将第三方共享库打包到deb包中时,我偶然发现了如何将共享库打包到ELF文件中。
创建一个自包含的linux可执行文件似乎是捆绑第三方库的一个有趣的选择。像this stackoverflow question这样的工具似乎可以很好地完成这项工作。
在这种情况下,将第三方库绑定到同一个deb包中听起来仍然是生成包的正确方法,当然,考虑到这些第三方库的所需版本不是通过任何第三方存储库分发或提供的。尽管将deb包作为依赖项添加是一个更好的选择,但在某些场景和用例中,此选项不可用。
因此,虽然捆绑第三方共享库的解决方案仍然不可用,但使用ELF Statifier之类的工具似乎是下一个好办法。

关于linux - 如何为依赖于官方程序包不受支持版本的项目创建deb二进制程序包,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51210706/

10-16 19:04