运送带有共享库的GNU / Linux Firefox插件(用于无root访问权限的安装)

时间:2010-06-10 14:37:13

标签: linux firefox shared-libraries shipping rpath

该应用程序是一个Firefox插件(从$ HOME / .mozilla / plugins加载),因此设置LD_LIBRARY_PATH的包装脚本不是一个简单的选项。

据我所知,RPATH无法引用$ HOME,只能是绝对的路径。

Firefox试图从〜/ .mozilla / plugins中删除它的插件但是失败了(因为它依赖于安装在用户主目录中某处的共享库)。

修改Firefox菜单项以在Firefox周围提供包装器(带有LD_LIBRARY_PATH)实在太糟糕了。

安装程序脚本应该做什么(没有root访问权限)来制作依赖于共享库的标准firefox加载插件?

  1. 我是否应该尝试将所有内容嵌入到那里。以删除依赖项?
  2. 我是否应该尝试在安装阶段使安装程序脚本完成链接或修补RPATH?

1 个答案:

答案 0 :(得分:4)

将RPATH设置为$ORIGIN/lib,以便加载程序查找相对于我的文件的库。

脚本只需将插件解压缩到$HOME/.mozilla/plugins/myplugin.so,将库解压缩到$HOME/.mozilla/plugins/lib/

rpath可以通过gcc添加Wl,-rpath,'$ORIGIN/lib'$应该在Makefile中加倍)指定给链接器,也可以在patchelf编译后更改。