0

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

此外,deb 包计划仅在内部分发,并且没有向公众发布 deb 的计划或期望。如果要遵守发行版的包装指南并支持官方软件包,则将是一项要求。

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

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

4

1 回答 1

0

在研究将第三方共享库捆绑在 deb 包中的方法时,我偶然发现了这个关于如何将共享库打包到 ELF 文件中的stackoverflow 问题。

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

在同一个 deb 包中捆绑第三方库听起来仍然是在这些情况下生成包的正确方法,当然考虑到这些第三方库的所需版本不是通过任何第三方存储库分发或提供的. 尽管将 deb 包添加为依赖项是更好的选择,但在某些场景和用例中,此选项不可用。

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

于 2018-07-07T09:00:27.730 回答