1

我有一个分发给客户的库。我正在探索将我的第 3 方依赖项保留为动态链接依赖项的想法。在这种情况下,我的客户的部署变得更加复杂,因为他们必须先安装我的依赖项才能使用我的库。我对此有点陌生,所以我有一个广泛的问题:

假设我所有的客户都在 linux 上,那么简单地将依赖项 .so 文件安装到系统库目录中的 RPM 包是最佳途径吗?从我读到的关于 RPM 的内容来看,这并不是它们的真正用途。我想我正在寻找的是一种 linux 的“安装程序”,但也许这样的东西不存在。

构建一个包含所有相关二进制文件(和许可证,如果适用)的包的最佳方法是什么,并且有关于如何安装的说明?

4

1 回答 1

1

您有多种选择:

  • 静态链接(如果正在播放的许可证允许)
  • 支持一系列发行版并为所有发行版提供软件包(可行性取决于您的客户是谁)。对您的客户来说是最简单的选择,对您来说是最复杂的选择。
  • 提供一个安装程序,将您的应用程序安装在 Windows 风格的自包含目录结构中(例如/opt/myapp/home/someuser/myapp)。将共享库放在那里并通过相应LD_LIBRARY_PATH设置的脚本启动。我已经看到 Loki 游戏、Adobe Reader、Google Earth 等使用了这个选项。

不要:

  • 提供一个自定义安装程序,它将在标准目录结构中复制您的二进制文件和库。这可能会覆盖您的客户拥有的其他应用所需的特定库版本。由于发行版的包管理不知道这些文件,因此它也留下了可怕的混乱。
  • 为每个人提供一个rpm。在非rpm发行版上,这将要求您的客户手动转换包以适应他们的包管理系统。
于 2013-03-19T23:13:06.070 回答