स्क्रिप्ट में कमांड लाइन से फ़ायरफ़ॉक्स एडऑन कैसे स्थापित करें?


25

मैं कुछ फ़ायरफ़ॉक्स ऐडऑन को जोड़ने के लिए अपनी अप्राप्य स्क्रिप्ट में सुधार करना चाहता हूं, हालांकि मुझे रास्ता नहीं मिल रहा है,

क्या कोई यह पता लगाने में मदद कर सकता है कि कैसे?

उदाहरण: (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

अग्रिम में धन्यवाद।


एक योजक की स्थापना को स्वचालित करने के लिए जोड़े गए निर्देश, यदि आपको एक स्क्रिप्ट की आवश्यकता है तो मुझे इसकी जानकारी दें।
ब्रूनो परेरा

यह अब से एक शानदार सवाल है, क्योंकि अब सीएलआई तरीका खोजने के लिए संघर्ष कर रहे हैं, जैसे कि 10.04 पर पहले से ही एडब्लॉक पैकेज स्थापित करें, सिर्फ 10 मिनट के साथ एडब्लॉक-प्लस विच डन्ट मौजूद नहीं है, 11 :( और हां- हमें स्क्रिप्ट की आवश्यकता है :)
कंगारू

जवाबों:


25

अपनी विधि का उपयोग करना

gksudo firefox -install-global-extension addon-1865-latest.xpiलगता है तुम्हारे लिए चाल चल रहा है। जो आपके सिस्टम पर सभी उपयोगकर्ताओं के लिए एक्सटेंशन इंस्टॉल करेगा।

केवल अपने उपयोगकर्ता के लिए एक्सटेंशन इंस्टॉल करने के लिए एक तर्क के रूप में एक्सटेंशन पथ का उपयोग करें

firefox addon-1865-latest.xpi

आपको अभी भी Installबटन पर क्लिक करने की आवश्यकता है !

स्थापना को स्वचालित करना

Firefoxaddon फ़ाइल नाम की जरूरत नहीं है, लेकिन पैकेज नाम के रूप में addon से पहचानकर्ता। इसका मतलब है कि यदि आप उपयोगकर्ता के हस्तक्षेप के बिना एक ऐडऑन स्थापित करने की योजना बना रहे हैं, तो आपको इसे एडऑन पहचानकर्ता स्ट्रिंग के नाम से फ़ोल्डर में निकालने की आवश्यकता है, न कि एडऑन के नाम से।

पहचानकर्ता स्ट्रिंग को एडऑन इंस्टॉल मैनिफ़ेस्ट फ़ाइल की पहली पंक्तियों पर पाया जा सकता है install.rdfऔर यह इस तरह दिखता है <em:id>{d10d0bf8-f5b5-c8b4-a8b2-2b9879e08c5d}</em:id>:। {}(घुंघराले ब्रेसिज़ सहित) के भीतर सब कुछ पहचानकर्ता है।

पैकेज को निकालने के लिए आपको काम करने के लिए एक ऐडऑन प्राप्त करने के लिए, उस फ़ोल्डर का नाम बदलें, जिसमें फाइल को addon आइडेंटिफ़ायर स्ट्रिंग में शामिल किया गया है और इसे या तो ग्लोबल एडऑन फ़ोल्डर में या उपयोगकर्ता एडोन फ़ोल्डर के भीतर रखें।

ग्लोबल एडऑन इंस्टॉल

यदि आप अपने सिस्टम के सभी उपयोगकर्ताओं के लिए स्वचालित रूप से एक एक्सटेंशन इंस्टॉल करना चाहते हैं, तो आपको उसे निकालने की आवश्यकता है, उस फ़ोल्डर का नाम बदलें, जिसमें addon की आईडी स्ट्रिंग है और इसे firefoxवैश्विक एक्सटेंशन फ़ोल्डर में कॉपी करें /usr/share/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}/, जो भी आप वहां उपयोग करते हैं उसे कॉल किया जाएगा। उपयोगकर्ता के खुलने पर स्वचालित firefox

उपयोगकर्ता विशिष्ट स्थापित

यदि आप अपने सिस्टम में केवल एक उपयोगकर्ता को स्वचालित रूप से एक्सटेंशन इंस्टॉल करना चाहते हैं, तो आपको उसे निकालने की आवश्यकता है, उस फ़ोल्डर का नाम बदलें, जिसमें एडऑन की आईडी स्ट्रिंग है और इसे 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.rdfAddon की आईडी प्राप्त करने के लिए फ़ाइल में पहली पंक्ति पढ़ें (इस स्थिति में यह {d10d0bf8-f5b5-c8b4-a8b2-2b9879e08c5d} होगा)। और उस नाम के साथ एक फ़ोल्डर बनाएँ

mkdir ~/extensions/{d10d0bf8-f5b5-c8b4-a8b2-2b9879e08c5d}

अपने extensionsफ़ोल्डर की सभी फ़ाइलों को नए बनाए गए में ले जाएँ ~/extensions/{d10d0bf8-f5b5-c8b4-a8b2-2b9879e08c5d}और आप {d10d0bf8-f5b5-c8b4-a8b2-2b9879e08c5d}स्थानीय इंस्टाल या ग्लोबल इंस्टॉल के लिए, फ़ोल्डर को ले जाकर स्थापित करने के लिए तैयार हैं ।

डिफ़ॉल्ट होम पेज कैसे सेट करें

फ़ायरफ़ॉक्स के अंदर वरीयताओं का उपयोग किए बिना अपना मुखपृष्ठ बदलने के लिए आपको संपादित करना होगा ~/.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आपका डिफ़ॉल्ट ब्राउज़र बना देगा


gksudo फ़ायरफ़ॉक्स-स्थापना-वैश्विक-विस्तार addon-1865-latest.xpi केवल सभी नए उपयोगकर्ताओं के लिए बनाता है EXEPT अतिथि हाँ? Couse मैंने किया और अतिथि के पास अभी भी कोई प्लगइन्स नहीं है।
कंगारू

install-global-extensionपदावनत किया गया है।
शिक्षार्थी

1
मैंने अक्सर एक्सटेंशन सिस्टम के आंतरिक कामकाज के बारे में सोचा है, यहां बहुत अच्छी जानकारी है, धन्यवाद!
दिसंबर को Madd0g

1
यदि आपके पास एडऑन का गुच्छा है, तो मेरा सुझाव है कि आप FEBE एडऑन का उपयोग करें, यह आपके सभी
ऐडऑन्स

2
मुझे लगता है कि इसके अंदर install.rdf या कम से कम आईडी जरूरी नहीं है कि वह WebExtensions में मौजूद हो। ध्यान दें, 2017 के अंत तक फ़ायरफ़ॉक्स वेबएक्स्टेंशन के अलावा अन्य एक्सटेंशन के लिए समर्थन छोड़ देगा।
फॉरविन

4

यह समस्याग्रस्त है क्योंकि फ़ायरफ़ॉक्स के विभिन्न संस्करणों में, अलग-अलग चीजें काम करती हैं और कुछ काम नहीं करती हैं। नए संस्करणों के लिए आपको बस .xpi का नाम बदलना होगा <addon id>.xpiऔर इसे एक्सटेंशन फ़ोल्डर में रखना होगा। जब आप बाद में फ़ायरफ़ॉक्स शुरू करते हैं, तो आपको वहां जोड़े गए सभी एडोनों की स्थापना को स्वीकार करने के लिए कहा जाएगा।

यहाँ कुछ 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"

धन्यवाद, यह अब मूक स्थापित करने के लिए उपयोग करने का सही
तरीका है

2

वैश्विक प्लगइन्स डिफ़ॉल्ट रूप से सक्षम नहीं हैं, और आपको prefs.jsउन्हें सक्षम करने के लिए उनकी प्रोफ़ाइल में फ़ाइल में सूची में जोड़ना होगा । बड़े पैमाने पर तैनाती के लिए एक बड़ा दर्द।

यहाँ जब हम का एक समूह फेंक दिया के लिए एक नमूना स्क्रिप्ट है prefs.jsनेटवर्क से ग्राहक मशीनों ऊपर से फ़ाइलों और से बदल IETabकरने के लिए IETab2, उनकी प्राथमिकताओं, आदि चले गए

एक अन्य तरीका यह है कि आप जिस उपयोगकर्ता प्रोफ़ाइल को किसी बॉक्स पर पसंद करते हैं, उसे नेटवर्क पर अपलोड करें, फिर उसे मशीनों में क्लोन कर दें Firefox\defaults\profileऔर सभी नए उपयोगकर्ता उस प्रोफ़ाइल को इनहेरिट कर देंगे।

`

----------------------------------------------------------------------
#!/bin/bash

pjsbase="/data/M_drive/Temp/prefsjs"

for userf in `find ${pjsbase} -maxdepth 1 -type f -name *.prefs.js -printf "%f\n"`
do
  echo ${userf}
  # add in IETab2 GUID and remove IETab GUID
  grep extensions.enabledItems ${pjsbase}/${userf} | 
  /bin/sed 's/\")/\,\{1BC9BA34-1EED-42ca-A505-6D2F1A935BBB\}\:2\.12\.21\.1\")/' | 
  /bin/sed 's/{77b819fa-95ad-4f2c-ac7c-486b356188a9}:1.5.20090525,//' > \
     ${pjsbase}/tmp1
  /bin/sed 's/0\.3\.8\.[0-9]*/0\.3\.8\.4/g' ${pjsbase}/tmp1 > ${pjsbase}/tmp
  /bin/sed /extensions.enabledItems/d ${pjsbase}/${userf}   > ${pjsbase}/tmp2
  cat ${pjsbase}/tmp2 > ${pjsbase}/${userf}.new2
  cat ${pjsbase}/tmp >> ${pjsbase}/${userf}.new2
  # add in IETab2 preferences
  echo user_pref\(\"extensions.ietab2.hasRun\"\,\ true\)\; >> \
     ${pjsbase}/${userf}.new2
  echo user_pref\(\"extensions.ietab2.ietab2PrefsMigrated\"\,\ true\)\; >> \
     ${pjsbase}/${userf}.new2
  echo user_pref\(\"extensions.ietab2.prefsMigrated\"\,\ true\)\; >> \
     ${pjsbase}/${userf}.new2
  echo user_pref\(\"extensions.ietab2.version\"\,\ \"2.12.21.1\"\)\; >> \
     ${pjsbase}/${userf}.new2
  echo user_pref\(\"extensions.update.notifyUser\"\,\ false\)\; >> \
     ${pjsbase}/${userf}.new2
  # if they have a preference list then migrate it
  if [ ! `grep user_pref\(\"ietab.filterlist\" ${pjsbase}/${userf} |
          wc -l` -eq 0 ]; then
    echo "user_pref(\"extensions.ietab2.filterlist"$(
       grep user_pref\(\"ietab.filterlist\" ${pjsbase}/${userf} | 
       sed 's/user\_pref(\"ietab\.filterlist//')"" >> ${pjsbase}/${userf}.new2
  fi
  # make sure prefs are alphabetised
  egrep -v ^u > ${pjsbase}/${userf}.new ${pjsbase}/${userf}.new2
  egrep ^u  ${pjsbase}/${userf}.new2 | sort >> ${pjsbase}/${userf}.new
done

`



1

फ़ायरफ़ॉक्स ऐड-ऑन एक लाइनर। एडब्लॉक प्लस , फ्लैशब्लॉक , और डाउनलोड हेल्पर उस क्रम में डाउनलोड किया गया, फिर firefoxसभी मिली हुई .xpiफ़ाइलों को खोलने के बाद, फिर उन .xpiफाइलों को हटा दें :

wget \ 
 https://addons.mozilla.org/firefox/downloads/latest/1865/addon-1865-latest.xpi \ 
 https://addons.mozilla.org/firefox/downloads/latest/433/addon-433-latest.xpi \
 https://addons.mozilla.org/firefox/downloads/latest/3006/addon-3006-latest.xpi && 
firefox *.xpi && rm *.xpi

0

मैंने ब्रूनो के उत्तर के आधार पर एक साधारण स्क्रिप्ट बनाई ।

यह बिना किसी इंटरैक्शन के वर्तमान उपयोगकर्ता के लिए एक एक्सटेंशन स्थापित करता है । आपको केवल addons.mozilla.org पर उनके URL s में मोज़िला उपयोग की आवश्यकता है । स्क्रिप्ट को एक .sh फ़ाइल के रूप में सहेजें और जब आप इसे कॉल करते हैं तो एक तर्क के रूप में संख्या का उपयोग करें।

फ़ायरफ़ॉक्स 40 के साथ लिनक्स टकसाल 17 पर परीक्षण और काम करना , यह जांचना सुनिश्चित करें कि क्या फ़ायरफ़ॉक्स के आपके संस्करण ने उसी निर्देशिका संरचना का उपयोग किया है क्योंकि उन्होंने इसे कुछ समय के आसपास बदल दिया है।

#!/bin/bash
extensionnumber=$1

# find profile dir (first profile in the ini file)
profiledir=`sed -n -e 's/^.*Path=//p' ${HOME}/.mozilla/firefox/profiles.ini | 
            head -n 1`
extensiondir="${HOME}/.mozilla/firefox/${profiledir}/extensions/"

if [ -z "$profiledir" ]; then
    printf "Can't find profile directory."
    exit 1
fi

mkdir /tmp/extension
cd /tmp/extension || exit $?

upstream=""https://addons.mozilla.org/firefox/downloads/latest"

# get extension and unzip
wget -O extension.xpi \
  "${upstream}/${extensionnumber}/addon-${extensionnumber}-latest.xpi" || 
  exit $?
unzip extension.xpi && rm extension.xpi

# get extension id from installation file
extensionid=`grep -m 1 -e em:id install.rdf`   
extensionid=${extensionid#*\>}
extensionid=${extensionid%<*}

# move all files to the directory with the right id
mkdir $extensionid || exit $?
shopt -s extglob dotglob
mv !($extensionid) $extensionid/
shopt -u dotglob

# create new firefox extension dir (if it's a clean install) 
# and move the extension
mkdir -p "${extensiondir}"
mv "${extensionid}" "${extensiondir}"

rmdir /tmp/extension
printf "Installed extension."
exit 0



0

फ़ायरफ़ॉक्स के नवीनतम संस्करणों के लिए, प्रक्रिया को बहुत सरल किया गया है!

  1. खोलना extension.xpi
  2. पढ़ें applications.gecko.idसेmanifest.json
  3. नाम बदलें extension.xpiकरने के लिए<ID>.xpi
  4. यहां सूचीबद्ध मानक स्थापना फ़ोल्डरों में से एक पर कॉपी करें
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.