如何使用应用程序打包或交付更新的共享库
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
到该位置。
我有一个应用程序 A,我要将其打包到 RPM 中。此应用程序依赖于共享库 L。大多数发行版都有 L 的旧版本。
库 L 在静态 linked 时存在问题,必须作为共享库交付。
我的问题是,如何处理交付当前版本的 L?
我是否在我的 rpm 中使用不冲突的文件名打包库 L,并 link 这些名称?
我可以在某个备用位置安装库 L 并在我的应用程序中修改 LD_LIBRARY_PATH 吗?
您不想修改 LD_LIBRARY_PATH
。不过,您可以在 libraries/binaries 中使用 rpath
。
或者,如果您的版本有不同的版本,则没有任何冲突,链接将正常工作,您可以将它们安装到正常位置。
也就是说我不会那样做,可能会使用包本地 lib
目录并使用显式 rpath
到该位置。