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

2024-03-20

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

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

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

修改 Firefox 菜单项以提供围绕 Firefox 的包装器(带有 LD_LIBRARY_PATH)太hacky了。

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

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

将 RPATH 设置为$ORIGIN/lib因此加载程序将查找与我的文件相关的库。

脚本只是将插件解压到$HOME/.mozilla/plugins/myplugin.so和图书馆$HOME/.mozilla/plugins/lib/

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

附带共享库的 GNU/Linux Firefox 插件(用于无需 root 访问权限的安装) 的相关文章

  • GMail 421 4.7.0 稍后重试,关闭连接

    我试图找出为什么它无法使用 GMail 从我的服务器发送邮件 为此 我使用 SwiftMailer 但我可以将问题包含在以下独立代码中
  • Firefox 30 不再隐藏选择框箭头

    我一直使用的 技巧 是 select moz appearance none text indent 0 01px text overflow 在 FF 上进行自定义选择框 但自从版本 30 发布以来 它完全停止工作 我试图找出这是否已被弃
  • Firefox 背景图像在切换标签后消失

    我在渲染背景图像时遇到一些非常奇怪的问题 我不确定这是 Firefox 的错误还是我的错 每次我在 Firefox 中打开项目站点时 所有背景图像都会正确加载并显示 当我切换到另一个选项卡并在一段时间后切换回来后 所有背景图像都消失了 我检
  • 使用循环在 C 中管道传输两个或多个 shell 命令

    我正在尝试执行ls wc l通过 C 语言程序 而不是使用命令行 这是我当前的工作代码 int main int pfds 2 pipe pfds pid t pid fork if pid 0 The child process clos
  • 使用 shell 脚本将行附加到 /etc/hosts 文件

    我有一个新的 Ubuntu 12 04 VPS 我正在尝试编写一个安装脚本来完成整个 LAMP 安装 我遇到问题的地方是在 etc hosts文件 我当前的主机文件如下所示 127 0 0 1 localhost Venus The fol
  • 如何让R使用所有处理器?

    我有一台运行 Windows XP 的四核笔记本电脑 但查看任务管理器 R 似乎一次只使用一个处理器 如何让 R 使用全部四个处理器并加速我的 R 程序 我有一个基本系统 我使用它在 for 循环上并行化我的程序 一旦您了解需要做什么 此方
  • 使用包管理器时如何管理 Perl 模块?

    A 最近的问题 https stackoverflow com questions 397817 unable to find perl modules in intrepid ibex ubuntu这让我开始思考 在我尝试过的大多数 Li
  • .net-core:ILDASM / ILASM 的等效项

    net core 是否有相当于 ILDASM ILASM 的功能 具体来说 我正在寻找在 Linux 上运行的东西 因此为什么是 net core ildasm 和 ilasm 工具都是使用此存储库中的 CoreCLR 构建的 https
  • Firefox 忽略背景大小的 css

    尝试使用背景大小 CSS 规则缩小图像 但 Firefox 3 5 似乎会忽略该规则 CSS privatejoker background aqua url styles images home privatejoker png no r
  • 为什么opencv videowriter这么慢?

    你好 stackoverflow 社区 我有一个棘手的问题 我需要你的帮助来了解这里发生了什么 我的程序从视频采集卡 Blackmagic 捕获帧 到目前为止 它工作得很好 同时我用 opencv cv imshow 显示捕获的图像 它也工
  • 错误:“rjags”的包或命名空间加载失败

    在终端的 conda 环境之一中 我能够成功安装包 rjags 但是 当我在该环境中运行 R 并运行库 rjags 时 出现以下错误 加载所需的包 coda 错误 rjags 的包或命名空间加载失败 rjags 的 loadNamespac
  • Linux 为一组进程保留一个处理器(动态)

    有没有办法将处理器排除在正常调度之外 也就是说 使用sched setaffinity我可以指示线程应该在哪个处理器上运行 但我正在寻找相反的情况 也就是说 我想从正常调度中排除给定的处理器 以便只有已明确调度的进程才能在那里运行 我还知道
  • 使用 gdb 调试 Linux 内核模块

    我想知道 API 在内核模块 中返回什么 从几种形式可以知道 这并不是那么简单 我们需要加载符号表来调试内核模块 所以我所做的就是 1 尝试找到内核模块的 text bss和 data段地址 2 在 gdb 中使用 add symbol f
  • 同源请求会导致“Access-Control-Allow-Origin 不匹配”错误,尽管来源当然匹配。注意:具有带“沙箱”的 CSP 策略

    当 的时候exact sameCORS 及其网页的 URL 都使用了 URL 但我在 Firefox 开发控制台中仍然收到相同的错误消息 浏览器控制台消息为 Cross Origin Request Blocked The Same Ori
  • Apache 访问 Linux 中的 NTFS 链接文件夹

    在 Debian jessie 中使用 Apache2 PHP 当我想在 Apache 的文档文件夹 var www 中创建一个新的小节时 我只需创建一个指向我的 php 文件所在的外部文件夹的链接 然后只需更改该文件夹的所有者和权限文件夹
  • 如何让 Node.js 作为后台进程运行并且永不死掉?

    我通过 putty SSH 连接到 linux 服务器 我尝试将其作为后台进程运行 如下所示 node server js 然而 2 5 小时后 终端变得不活动 进程终止 即使终端断开连接 我是否也可以使进程保持活动状态 Edit 1 事实
  • 嵌入式 Linux – 部署固件更新的机制? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在考虑在 Yocto 项目上开发一个嵌入式 Linux 项目 一个工业应用程序 我有几个问题想问那些有嵌入式 Linux 经验的人 Y
  • [A-Z] 表示 [A-Za-z] 是怎么回事?

    我已经注意到 至少在我使用的一些基于 Unix 的系统上 ls A Z 已经给了我预期的结果ls A Za z 让我无法轻松获得以大写字母开头的该死的文件列表 我刚刚遇到了同样的事情grep 我无法让它停止与小写字母匹配 A Z 直到我最终
  • 在运行时检查 GCC 版本

    我需要找出 C 程序执行过程中 运行时 可用的 系统中安装的 GCC 版本 主要版本和次要版本 意思是 以编程方式提取可用 gcc 的版本 就像我在 shell 中输入 gcc version 一样 但在 c 程序中 The GNUC an
  • Ubuntu 的打包 - Web 应用程序

    Web 应用程序没有与 C 或类似文件不同的 make 文件 但是 它需要放置在特定的目录中 例如 var www 我是 Linux 打包新手 所以我的问题是 如何将我的应用程序打包到 deb 中 以便在安装时将其放入 etc myprog

随机推荐

  • SQLite3 Node.js JSON

    我正在使用sqlite3NPM 包 我想将 JSON 存储在我的数据库列之一中 据我所知 SQLite本身能够存储JSONhttps www sqlite org json1 html https www sqlite org json1
  • Coq 中的案例分析证明

    我试图证明关于以下函数的命题 Program Fixpoint division m nat n nat measure m nat match lt nat 0 n with false gt 0 true gt match leq na
  • Steam:使用 PHP 将 SteamID64 转换为 SteamID

    有人如何使用 PHP javascript 将 steamid64 例如 76561198074259974 转换为 steamid STEAM 0 0 56997123 我想在加载屏幕上显示 steamid 但不是 steamid64 看
  • 在 C# 中查找 MP3 长度

    我在用着TagLib http developer novell com wiki index php TagLib Sharp从一些 MP3 中获取 ID3 标签数据 但我似乎无法找到 MP3 的长度 如何在 C 中找到 MP3 的长度
  • Microsoft Teams Tab 应用程序无法访问剪贴板

    I m developing the Microsoft Teams Tab application Tab application is run inside Microsoft Teams through iframe so there
  • 上下文操作模式自定义行为

    在 Android 开发者中菜单指南 http developer android com guide topics ui menus html CAB其中提到 当用户取消选择所有项目 按 后退 按钮或选择操作栏左侧的 完成 操作时 操作模
  • 中继器控件 - 取消特定项目的绑定

    在转发器控件中 是否有一种方法可以在呈现页面之前解除某些项目的绑定 目前 我们有一个绑定到转发器的项目集合 如果该项目不是当前语言的一部分 我们将隐藏该项目 我希望能够对中继器进行计数并返回有效的号码 不包括隐藏项目的计数 是否可以解除特定
  • 创建实时数据仓库

    我正在做一个个人项目 其中包括创建数据仓库 DWH 的完整架构 在本例中 作为 ETL 和 BI 分析工具 我决定使用 Pentaho 它具有许多功能 从允许轻松创建仪表板到完整的数据挖掘流程和 OLAP 多维数据集 我读过数据仓库必须是关
  • 在Java中使用分隔符(与分割相反)连接数组元素的一种快速而简单的方法[重复]

    这个问题在这里已经有答案了 See 相关 NET 问题 https stackoverflow com questions 455438 opposite of string split with separators net 我正在寻找一
  • 为什么 std::vector 这么快(或者我的实现太慢)

    前几天我在玩游戏 试图看看我能在多大程度上优化某些东西 我决定从一个简单的映射开始 它只进行线性搜索来查找元素是否存在 然后尝试对其大部分进行优化 另外 为了进行比较 我使用 std find 对 std map 和 std vector
  • Protractor - 检查单选按钮是否被选中

    所以我遇到了这个问题 我运行量角器 硒测试 有时在测试过程中已经检查了单选按钮 有时则没有 etc div class radio item checked or div class radio item 您可以在其中看到该类有时具有 检查
  • 如何使用 Java 11 HttpClient 和 Jackson 将 JSON 响应映射到 Java 类?

    我是 Java 11 HttpClient 的新手 想尝试一下 我有一个返回 JSON 的简单 GET 请求 我想将 JSON 响应映射到名为的 Java 类Questionnaire 我知道我可以将响应直接转换为字符串或输入流 如下所示
  • 如何在 emacs 中删除引用的字符串?

    我想删除源文件中带引号的字符串 无需标记字符串的开头和终止区域 但只需将点放置在引用字符串内的任意位置并按快捷键即可 我尝试在 elisp 中为此编写一个函数 但我发现该文件 需要从头到点进行解析 以确定该点是否在带引号的字符串内 并找到带
  • 将 Mutations 添加到 Vuex 存储作为 Vue 插件的一部分

    我正在创建一个小型 Vue 插件 允许用户从任何组件内添加 页面通知 我已经成功地实现了类似的东西 this notifications add a message 它有效 但我必须注册我的插件工作所需的突变和操作 作为为我的应用程序设置商
  • Lisp 内部引用工作

    口齿不清是如何做到的quote内部工作 例如 quote 1 1 2 似乎相当于 list 1 list 1 2 这意味着它是如何递归地象征 Head 值的 这个功能是内置的吗 Run equal quote 1 1 2 list 1 li
  • 使用团队成员参数进行 ASP.NET Core 身份授权

    我有一个带有这样的表的应用程序 用户 ASP NET Core 身份 Team UserTeam 多对多联接表 用户可以是多个团队的成员 并且可以在团队中具有不同的角色 例如 用户可能是 TeamA 的团队管理员 但只是 TeamB 的普通
  • Foo.cmd 不会输出进程中的行(在网站上)

    我无法理解 NET 中 ProcessStartInfo 类的内部和外部 我使用此类来执行 FFmpeg 等 exe 程序 没有任何问题 但是当我使用 ProcessStartInfo 启动 cmd 程序时 例如一个简单的 foo cmd
  • XCode11 错误“open(_:options:completionHandler:) 在应用程序扩展中不可用”

    启动后触摸图 v1 0 https apps apple com us app touchgram for imessage id1447336478 ls 1 这是 99 iMessage 应用程序扩展 我尝试更新到 XCode 11 我
  • 以用户身份运行我的程序

    Windows 7 Vista Server 2008 UAC已激活 程序必须具有管理员权限才能进行某些安装操作 之后 我希望我的程序继续以非管理员权限运行 如何在没有管理权限的情况下重新启动它 P S 我的程序自行重新安装 我不想为其分发
  • 附带共享库的 GNU/Linux Firefox 插件(用于无需 root 访问权限的安装)

    该应用程序是一个 Firefox 插件 从 HOME mozilla plugins 加载 因此设置 LD LIBRARY PATH 的包装脚本不是一个简单的选择 据我所知 RPATH 不能引用 HOME 只能是绝对路径 Firefox 尝