如何使用应用程序打包或交付更新的共享库

How to package or deliver updated shared libraries with an application

我有一个应用程序 A,我要将其打包到 RPM 中。此应用程序依赖于共享库 L。大多数发行版都有 L 的旧版本。

库 L 在静态 linked 时存在问题,必须作为共享库交付。

我的问题是,如何处理交付当前版本的 L?

我是否在我的 rpm 中使用不冲突的文件名打包库 L,并 link 这些名称?

我可以在某个备用位置安装库 L 并在我的应用程序中修改 LD_LIBRARY_PATH 吗?

您不想修改 LD_LIBRARY_PATH。不过,您可以在 libraries/binaries 中使用 rpath

或者,如果您的版本有不同的版本,则没有任何冲突,链接将正常工作,您可以将它们安装到正常位置。

也就是说我不会那样做,可能会使用包本地 lib 目录并使用显式 rpath 到该位置。