该应用程序是一个Firefox插件(从$HOME / .mozilla / plugins加载),因此设置LD_LIBRARY_PATH的包装脚本不是一个简单的选择.
据我所知,RPATH不能引用$HOME而只能是绝对路径.
Firefox试图从〜/ .mozilla / plugins中删除它的插件但是失败了(因为它依赖于安装在用户主目录中某处的共享库).
修改Firefox菜单项以在Firefox周围提供包装器(带有LD_LIBRARY_PATH)实在太过分了.
安装程序脚本应该做什么(没有root访问权限)来制作依赖于共享库的标准firefox加载插件?
>我是否应该尝试将所有内容嵌入到那里.以删除依赖项?
>我是否应该尝试在安装阶段使安装程序脚本完成链接或修补RPATH?
解决方法:
将RPATH设置为$ORIGIN / lib,以便加载器查找相对于我的文件的库.
脚本只是将插件解压缩到$HOME / .mozilla / plugins / myplugin.so和库到$HOME / .mozilla / plugins / lib /
通过添加Wl,-rpath,’$ORIGIN / lib'($应该在Makefile中加倍),可以通过gcc将rpath指定给链接器,也可以在patchelf编译后更改.