火狐浏览器自动安装xpi扩展

来源:互联网 发布:藤门留学收费 知乎 编辑:程序博客网 时间:2024/05/22 21:30

一、终端敲入命令

<code class="hljs avrasm has-numbering" style="display: block; padding: 0px; background: transparent; color: inherit; box-sizing: border-box; font-family: "Source Code Pro", monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal;">firefox xxxx<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.xpi</span></code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right: 1px solid rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right: 1px solid rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li></ul>

但是仍然需要点击 安装 按钮

二、自动安装

<code class="hljs avrasm has-numbering" style="display: block; padding: 0px; background: transparent; color: inherit; box-sizing: border-box; font-family: "Source Code Pro", monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal;">mkdir ~/extensions<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">cp</span> xxxx<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.xpi</span> ~/extensionscd ~/extensionsunzip xxxx<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.xpi</span>rm xxxx<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.xpi</span></code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right: 1px solid rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right: 1px solid rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li></ul>
  1. 获取该扩展的id号

打开 install.rdf 文件,找到第一个类似于 
{d10d0bf8-f5b5-c8b4-a8b2-2b9879e08c5d} 
以这个id作为 文件名

<code class="hljs lasso has-numbering" style="display: block; padding: 0px; background: transparent; color: inherit; box-sizing: border-box; font-family: "Source Code Pro", monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal;">mkdir {d10d0bf8<span class="hljs-attribute" style="box-sizing: border-box;">-f5b5</span><span class="hljs-attribute" style="box-sizing: border-box;">-c8b4</span><span class="hljs-attribute" style="box-sizing: border-box;">-a8b2</span><span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">-</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span>b9879e08c5d}</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right: 1px solid rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right: 1px solid rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li></ul>

将所有之前解压出来的文件,拷贝至该文件夹

<code class="hljs lasso has-numbering" style="display: block; padding: 0px; background: transparent; color: inherit; box-sizing: border-box; font-family: "Source Code Pro", monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal;">Mv  xx {d10d0bf8<span class="hljs-attribute" style="box-sizing: border-box;">-f5b5</span><span class="hljs-attribute" style="box-sizing: border-box;">-c8b4</span><span class="hljs-attribute" style="box-sizing: border-box;">-a8b2</span><span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">-</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span>b9879e08c5d}Mv  xx {d10d0bf8<span class="hljs-attribute" style="box-sizing: border-box;">-f5b5</span><span class="hljs-attribute" style="box-sizing: border-box;">-c8b4</span><span class="hljs-attribute" style="box-sizing: border-box;">-a8b2</span><span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">-</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span>b9879e08c5d}    <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">.</span>    <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">.</span>    <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">.</span></code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right: 1px solid rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right: 1px solid rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li></ul>

安装分两种,1、指定用户安装 2、全局安装 
指定用户安装 
将{d10d0bf8-f5b5-c8b4-a8b2-2b9879e08c5d}文件 拷贝至 下面目录,没有该目录时创建该目录

<code class="hljs coffeescript has-numbering" style="display: block; padding: 0px; background: transparent; color: inherit; box-sizing: border-box; font-family: "Source Code Pro", monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal;"><span class="hljs-regexp" style="color: rgb(0, 136, 0); box-sizing: border-box;">/home/user_name/</span>.mozilla<span class="hljs-regexp" style="color: rgb(0, 136, 0); box-sizing: border-box;">/extensions/</span>{ec8030f7-c20a-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">464</span>f-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">9</span>b0e-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">13</span>a3a9e97384}/</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right: 1px solid rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right: 1px solid rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li></ul>

全局安装 
将{d10d0bf8-f5b5-c8b4-a8b2-2b9879e08c5d}文件 拷贝至 下面目录,没有该目录时创建该目录

<code class="hljs mathematica has-numbering" style="display: block; padding: 0px; background: transparent; color: inherit; box-sizing: border-box; font-family: "Source Code Pro", monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal;">/usr/share/mozilla/extensions/<span class="hljs-list" style="box-sizing: border-box;">{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</span>/   </code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right: 1px solid rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right: 1px solid rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li></ul>

重启浏览器。

/**自动安装扩展脚本(指定用户安装)*******/

保证该脚本和xxxx.xpi在同一目录

<code class="hljs bash has-numbering" style="display: block; padding: 0px; background: transparent; color: inherit; box-sizing: border-box; font-family: "Source Code Pro", monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal;"><span class="hljs-shebang" style="color: rgb(0, 102, 102); box-sizing: border-box;">#!/bin/bash</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># find profile dir (first profile in the ini file)</span>profiledir=`cat <span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">${HOME}</span>/.mozilla/firefox/profiles.ini | sed -n <span class="hljs-operator" style="box-sizing: border-box;">-e</span> <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'s/^.*Path=//p'</span> | head -n <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>`extensiondir=<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"<span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">${HOME}</span>/.mozilla/firefox/<span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">${profiledir}</span>/extensions/"</span><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span> [ -z <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"<span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">$profiledir</span>"</span> ]; <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">then</span>    <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">printf</span> <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"Can't find profile directory."</span>    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">exit</span> <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">fi</span>mkdir -p /tmp/extension<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">cd</span> /tmp/extension || <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">exit</span> $?<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">#将xxxx.xpi改为相应的扩展</span>unzip xxxx.xpi && rm xxxx.xpi<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># get extension id from installation file</span>extensionid=`grep -m <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span> <span class="hljs-operator" style="box-sizing: border-box;">-e</span> em:id install.rdf`   extensionid=<span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">${extensionid#*\>}</span>extensionid=<span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">${extensionid%<*}</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># move all files to the directory with the right id</span>mkdir <span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">$extensionid</span> || <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">exit</span> $?<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">shopt</span> <span class="hljs-operator" style="box-sizing: border-box;">-s</span> extglob dotglobmv !(<span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">$extensionid</span>) <span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">$extensionid</span>/<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">shopt</span> -u dotglob<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># create new firefox extension dir (if it's a clean install) and move the extension</span>mkdir -p <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"<span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">${extensiondir}</span>"</span>mv <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"<span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">${extensionid}</span>"</span> <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"<span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">${extensiondir}</span>"</span>rmdir /tmp/extension<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">printf</span> <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"Installed extension."</span><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">exit</span> <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span></code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right: 1px solid rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li><li style="box-sizing: border-box; padding: 0px 5px;">23</li><li style="box-sizing: border-box; padding: 0px 5px;">24</li><li style="box-sizing: border-box; padding: 0px 5px;">25</li><li style="box-sizing: border-box; padding: 0px 5px;">26</li><li style="box-sizing: border-box; padding: 0px 5px;">27</li><li style="box-sizing: border-box; padding: 0px 5px;">28</li><li style="box-sizing: border-box; padding: 0px 5px;">29</li><li style="box-sizing: border-box; padding: 0px 5px;">30</li><li style="box-sizing: border-box; padding: 0px 5px;">31</li><li style="box-sizing: border-box; padding: 0px 5px;">32</li><li style="box-sizing: border-box; padding: 0px 5px;">33</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right: 1px solid rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li><li style="box-sizing: border-box; padding: 0px 5px;">23</li><li style="box-sizing: border-box; padding: 0px 5px;">24</li><li style="box-sizing: border-box; padding: 0px 5px;">25</li><li style="box-sizing: border-box; padding: 0px 5px;">26</li><li style="box-sizing: border-box; padding: 0px 5px;">27</li><li style="box-sizing: border-box; padding: 0px 5px;">28</li><li style="box-sizing: border-box; padding: 0px 5px;">29</li><li style="box-sizing: border-box; padding: 0px 5px;">30</li><li style="box-sizing: border-box; padding: 0px 5px;">31</li><li style="box-sizing: border-box; padding: 0px 5px;">32</li><li style="box-sizing: border-box; padding: 0px 5px;">33</li></ul>

参考链接: 
http://askubuntu.com/questions/73474/how-to-install-firefox-addon-from-command-line-in-scripts

0 0