如何全局添加 Thunderbird 插件?

Mic*_*ies 5 software-installation thunderbird

我已将 Thunderbird 扩展程序下载为.xpi文件。

我知道,我可以通过以下方式在 Thunderbird 中安装它

Tools
  -> Addons
     -> Install Add-on from file
Run Code Online (Sandbox Code Playgroud)

但是,我使用了多个 Thunderbird 配置文件,我必须为每个配置文件执行此操作。

我怎样才能全局安装这个插件(大概在 中的某个地方/usr/share/xul-ext)?我必须在.xpi那里解压这个扩展文件吗?

ser*_*inc 4

看起来,扩展目录在不同的 unice 上有不同的位置。在 Ubuntu 上,它是/usr/lib/thunderbird-addons/extensions. 这个答案让你的目录/usr/lib/thunderbird/extensions/

  1. 解压 xpi 文件(它是一个 zip)

    unzip addon.xpi
    
    Run Code Online (Sandbox Code Playgroud)
  2. 从文件中检索附加组件 ID install.rdf

    ID=$(grep em:id install.rdf  | head -1 | cut -d '>' -f 2 | cut -d '<' -f 1)
    
    Run Code Online (Sandbox Code Playgroud)
  3. 在以下位置创建 id-name 目录extensions

    mkdir /usr/lib/thunderbird/extensions/$ID
    
    Run Code Online (Sandbox Code Playgroud)
  4. 移动解压后的文件

    mv $(ls | grep -v addon.xpi)) /usr/lib/thunderbird/extensions/$ID
    
    Run Code Online (Sandbox Code Playgroud)

请注意,这些不会自动更新。update-global-firefox-addons-automatically 的问题(由我提出)正在等待......

编辑:随着网络扩展的出现,获取 ID 变得有点困难。尝试以下脚本

#! /bin/bash
if [ $(id -u) -ne 0 ]; then echo 'needs to run as root'; exit; fi
D=$(mktemp -d)
unzip $1 -d $D
[ -f $D/manifest.json ] && ADDON_ID=$(openssl asn1parse -inform DER -in $D/META-INF/mozilla.rsa | grep -A 1 commonName | grep -E '{|@' | cut -d ':' -f 4)
[ -f $D/install.rdf ] && ADDON_ID=$(grep "em:id" $D/install.rdf  | head -1 | cut -d ">" -f 2 | cut -d "<" -f 1)
if [ x$ADDON_ID == x ]; then
    echo "ADDON_ID retrieval failed"
    exit
else
    echo ID: $ADDON_ID
fi
chmod 755 $D
chmod -R a+r $D
rm -rf /usr/lib/thunderbird-addons/extensions/$ADDON_ID
mv $D /usr/lib/thunderbird-addons/extensions/$ADDON_ID
Run Code Online (Sandbox Code Playgroud)