請注意

請注意

我想改進我的無人值守腳本添加一些 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,這個過程已經簡化了很多!

  1. 解壓縮extension.xpi
  2. applications.gecko.idmanifest.json
  3. 重新命名extension.xpi<ID>.xpi
  4. 複製到列出的標準安裝資料夾之一這裡

答案4

請注意

從 Firefox 74 開始,現在不再可能執行此任務。

不要再花很多時間嘗試讓這項工作成功了!

相關內容