【发布时间】:2010-06-10 14:37:13
【问题描述】:
该应用程序是一个 Firefox 插件(从 $HOME/.mozilla/plugins 加载),因此设置 LD_LIBRARY_PATH 的包装脚本不是一个简单的选择。
据我所知,RPATH 不能引用 $HOME,只能是绝对路径。
Firefox 尝试从 ~/.mozilla/plugins dlopen 它的插件但失败(因为它依赖于安装在用户主目录中某处的共享库)。
修改 Firefox 菜单项以提供围绕 Firefox 的包装器(带有 LD_LIBRARY_PATH)太 hacky。
安装程序脚本应该做什么(没有 root 访问权限)来制作依赖于共享库的标准 firefox 加载插件?
- 我是否应该尝试将所有内容嵌入到该 .so 中以消除依赖关系?
- 我是否应该在安装阶段尝试制作安装程序脚本来完成链接或修补 RPATH?
【问题讨论】:
-
将
patchelf包含在安装程序中,该安装程序将检测到的路径修补到正在安装的插件中。 -
删除了
patchelf的 hack 和 $ORIGIN 的硬编码路径
标签: linux firefox shared-libraries shipping rpath