从命令行在 Firefox 上安装 WebExtensions

Install WebExtensions on Firefox from the command line

我发现问题 How to install Firefox addon from command line in scripts? 似乎适用于 Firefox 扩展(即带有 install.rdf 文件的扩展),但是 WebExtensions(带有manifest.json 文件)?

请看:

你 link 在 askubuntu 上的问题:How to install Firefox addon from command line in scripts? 已经过时好几年了,但确实有一些很好的信息。

此时,大多数 Mozilla 附加组件,包括所有 Firefox WebExtension 附加组件,都是手动安装的,方法是将附加组件的 .xpi 文件放在适当的目录中,并使用正确的扩展名称,无需解包(解压)内容。 [您也可以通过在 Firefox 中下载它们来安装它们,将 .xpi 拖放到 Firefox/Thunderbird 上,等等]

您可以通过解压缩加载项的 .xpi 文件并查看 install.rdf file to see if it has <em:unpack>true</em:unpack> 来确定必须解压缩的那些加载项。所有WebExtensions都没有这个文件,不解包安装

必须调用 .xpi 文件 [extensionID].xpi。您可以从 install.rdf 文件(非 WebExtension 附加组件)中找到扩展 ID。在该文件中,您正在寻找 <em:id>ThisEntireStringIsTheAddOnsID</em:id>

对于 WebExtension,ID 在 manifest.json file under the applications 属性:

"applications": {
    "gecko": {
        "id": "ThisEntireStringIsTheAddOnsID"
    }
},

对于上述两个示例,.xpi 文件必须重命名为 ThisEntireStringIsTheAddOnsID.xpi

如果install.rdf文件包含<em:unpack>true</em:unpack>,那么.xpi中的文件必须解包(unzipped),放在extensions目录下的子目录下。在上面的 install.rdf 示例中(WebExtensions 再次 解压),目录将被命名为:ThisEntireStringIsTheAddOnsID

扩展目录:

放置.xpi文件或解压目录的扩展目录是(部分信息copied from MDN):

所有用户运行使用特定版本的 Firefox:
[Firefox install directory]/browser/extensions/

当 Firefox 版本为 运行 时,Firefox 将要求用户确认安装附加组件。用户将无法删除扩展,只能禁用它。扩展不会自动更新。

所有用户运行使用特定版本的 Firefox:
[Firefox install directory]/distribution/extensions

当配置文件首次 运行 使用该版本的 Firefox 时,将为所有 users/profiles 安装扩展。该扩展将被复制到配置文件的 extensions 目录中,用户除了可以禁用它之外还可以将其删除。不会要求用户确认安装。复制到每个配置文件的扩展将与为该配置文件安装的所有其他扩展一起自动更新。您应该 解压此目录中的任何.xpi 文件。如果文件需要解压,当在每个配置文件中安装扩展时,Firefox 会自动完成。

对于特定用户的特定个人资料:
[profile directory]/extensions/

在 Windows:
特定用户的所有配置文件:
<I>%appdata%\Mozilla\Extensions\{ec8030f7-c20a-464f-9b0e-13a3a9e97384}\</I>

配置文件目录位于:
<i>\Mozilla\Firefox\Profiles\*</i>

OSX:
对于所有用户:
/Library/Application Support/Mozilla/Extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}/

仅针对特定用户,将其放置在该用户的图书馆文件夹层次结构中:
~/Library/Application Support/Mozilla/Extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}/

Linux:
对于所有用户:
/usr/lib/Mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}/


/usr/lib64/Mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}/


/usr/share/Mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}/

仅针对特定用户:
~/.Mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}/

注意:

您 link 编辑的 question/answer 中提到的 -install-global-extension 选项是 removed from Firefox as of Gecko 1.9.2(很久以前)。