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

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

据我所知,RPATH不能引用$ HOME,只能是绝对path。

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

在Firefox附近修改Firefox菜单项以提供一个封装(使用LD_LIBRARY_PATH)太过于黑客。

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

  1. 我应该只是试图把所有东西都embedded到.so中去除依赖关系吗?
  2. 我应该尝试使安装程序脚本在安装阶段完成链接或修补RPATH吗?

Solutions Collecting From Web of "运送带有共享库的GNU / Linux Firefox插件(用于安装时无root权限)"

将RPATH设置为$ORIGIN/lib这样加载器将查找与我的文件相关的库。

脚本只是$HOME/.mozilla/plugins/myplugin.so插件到$HOME/.mozilla/plugins/myplugin.so和库到$HOME/.mozilla/plugins/lib/

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