我想改進我的無人值守腳本添加一些 Firefox 插件,但是我找不到方法,
有人可以幫忙找出如何做嗎?
範例:(想要安裝adblockPlus外掛程式並設定新的預設網頁)
wget https://addons.mozilla.org/firefox/downloads/latest/1865/addon-1865-latest.xpi
firefox -silent -install-global-extension addon-1865-latest.xpi -setDefaultBrowser www.google.es
提前致謝。
答案1
使用你的方法
gksudo firefox -install-global-extension addon-1865-latest.xpi
似乎對你有用。這會將擴充功能安裝到系統上的所有使用者。
若要僅為您的使用者安裝擴展,請使用擴展路徑作為參數
firefox addon-1865-latest.xpi
Install
但您仍然需要單擊該按鈕!
自動化安裝
Firefox
不需要插件檔名,而是需要插件的識別碼作為套件名稱。這意味著,如果您打算在沒有使用者乾預的情況下安裝插件,則需要將其提取到具有插件標識符字串名稱(而不是插件名稱)的資料夾中。
標識符字串可以在插件安裝清單檔案的第一行找到install.rdf
,如下所示:<em:id>{d10d0bf8-f5b5-c8b4-a8b2-2b9879e08c5d}</em:id>
。中的所有內容{}
(包括花括號)都是識別符。
要使插件正常工作,您需要提取包,將包含文件的資料夾重命名為插件標識符字串,並將其放置在全域插件資料夾或使用者插件資料夾中。
全域插件安裝
如果您想自動向系統中的所有使用者安裝擴展,則需要將其解壓縮,將包含該插件的資料夾重命名為該插件的 id 字串,並將其複製到firefox
全域擴展資料夾中/usr/share/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}/
,您在那裡使用的任何內容都將被調用當用戶打開時自動firefox
。
使用者特定安裝
如果您想自動為系統中的一個使用者安裝擴展,則需要將其解壓縮,將包含插件的資料夾重新命名為插件的 id 字串,並將其複製到firefox
使用者擴展資料夾/home/user_name/.mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}/
(如果不存在則創建它) ,當使用者開啟時,您在那裡使用的任何內容都會自動呼叫firefox
。
如何準備用於自動安裝的插件 - 範例
在您的家中建立一個extensions
資料夾並將插件下載到其中
mkdir ~/extensions
cd ~/extensions
wget https://addons.mozilla.org/firefox/downloads/latest/1865/addon-1865-latest.xpi
解壓縮並刪除原來的
unzip ~/extensions/addon-1865-latest.xpi
rm ~/extensions/addon-1865-latest.xpi
讀取檔案中的第一行install.rdf
以取得插件的 id(在本例中為 {d10d0bf8-f5b5-c8b4-a8b2-2b9879e08c5d})。並建立一個具有該名稱的資料夾
mkdir ~/extensions/{d10d0bf8-f5b5-c8b4-a8b2-2b9879e08c5d}
將資料夾中的所有檔案extensions
移至新建立的資料夾中,然後按照本機安裝或全域安裝的說明~/extensions/{d10d0bf8-f5b5-c8b4-a8b2-2b9879e08c5d}
移動該資料夾即可進行安裝。{d10d0bf8-f5b5-c8b4-a8b2-2b9879e08c5d}
如何設定預設主頁
要在不使用 Firefox 內的首選項的情況下更改主頁,您必須編輯~/.mozilla/firefox/*.default/prefs.js
(其中為您的用戶創建的*.default
資料夾~/.mozilla/firefox
)並將此行添加到其末尾
user_pref("browser.startup.homepage", "http://uptechtalk.com");
或使用此命令
echo "user_pref("browser.startup.homepage", "http://uptechtalk.com");" >> ~/.mozilla/firefox/*.default/prefs.js
您需要在關閉後執行此操作firefox
,否則程式將在退出時覆蓋設定。
如果您的用戶尚未使用firefox
,並且您想要為所有新用戶設定主頁(全域設定主頁),請使用此命令
echo "user_pref("browser.startup.homepage", "http://uptechtalk.com");" >> /etc/xul-ext/ubufox.js
關於您的問題的評論
-silent
不存在,xpi
無論如何都會提示您安裝該擴展,並且您必須單擊按鈕才能安裝;
-setDefaultBrowser
不會設定您的主頁,它將成為firefox
您的預設瀏覽器
答案2
這是有問題的,因為在不同版本的 Firefox 中,不同的功能可以工作,有些則不起作用。對於較新的版本,您只需將 .xpi 重新命名為<addon id>.xpi
並將其放入擴充資料夾中。當您隨後啟動 Firefox 時,系統會要求您接受安裝您在其中新增的所有外掛程式。
這裡有一些 BASH 功能,可以讓您的生活更輕鬆。
EXTENSIONS_SYSTEM='/usr/share/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}/'
EXTENSIONS_USER=`echo ~/.mozilla/firefox/*.default/extensions/`
# -------------------------- xpi tools ---------------------------------
get_addon_id_from_xpi () { #path to .xpi file
addon_id_line=`unzip -p $1 install.rdf | egrep '<em:id>' -m 1`
addon_id=`echo $addon_id_line | sed "s/.*>\(.*\)<.*/\1/"`
echo "$addon_id"
}
get_addon_name_from_xpi () { #path to .xpi file
addon_name_line=`unzip -p $1 install.rdf | egrep '<em:name>' -m 1`
addon_name=`echo $addon_name_line | sed "s/.*>\(.*\)<.*/\1/"`
echo "$addon_name"
}
# Installs .xpi given by relative path
# to the extensions path given
install_addon () {
xpi="${PWD}/${1}"
extensions_path=$2
new_filename=`get_addon_id_from_xpi $xpi`.xpi
new_filepath="${extensions_path}${new_filename}"
addon_name=`get_addon_name_from_xpi $xpi`
if [ -f "$new_filepath" ]; then
echo "File already exists: $new_filepath"
echo "Skipping installation for addon $addon_name."
else
cp "$xpi" "$new_filepath"
fi
}
讓我們安裝 Adblock..
wget https://addons.mozilla.org/firefox/downloads/latest/1865/addon-1865-latest.xpi
install_addon addon-1865-latest.xpi "$EXTENSIONS_USER"
答案3
對於最新版本的 Firefox,這個過程已經簡化了很多!
- 解壓縮
extension.xpi
- 讀
applications.gecko.id
自manifest.json
- 重新命名
extension.xpi
為<ID>.xpi
- 複製到列出的標準安裝資料夾之一這裡
答案4
請注意
從 Firefox 74 開始,現在不再可能執行此任務。
不要再花很多時間嘗試讓這項工作成功了!