वैकल्पिक एक्सटेंशन के डिस्ट्रिब्यूशन के विकल्प

सभी Chrome एक्सटेंशन या तो सीधे 'Chrome वेब स्टोर' से या नीचे बताए गए तरीकों के ज़रिए डिस्ट्रिब्यूट किए जाने चाहिए. डिस्ट्रिब्यूशन के इन तरीकों में से किसी एक का पालन न करना, Chrome एक्सटेंशन नीति का उल्लंघन माना जाएगा. इसके तहत, एक्सटेंशन और/या सॉफ़्टवेयर को अनचाहा सॉफ़्टवेयर के तौर पर फ़्लैग किया जा सकता है.

आम तौर पर, उपयोगकर्ता 'Chrome वेब स्टोर' से एक्सटेंशन इंस्टॉल करते हैं, लेकिन कभी-कभी हो सकता है कि आप किसी दूसरे तरीके से एक्सटेंशन इंस्टॉल करना चाहें. यहां आम तौर पर दो मामले दिए गए हैं:

  • एक एक्सटेंशन किसी दूसरे सॉफ़्टवेयर से जुड़ा होता है और जब भी उपयोगकर्ता उस दूसरे सॉफ़्टवेयर को इंस्टॉल करता है, तब एक्सटेंशन इंस्टॉल किया जाना चाहिए.
  • किसी नेटवर्क का एडमिन अपने पूरे संगठन में एक ही एक्सटेंशन इंस्टॉल करना चाहता है.

जिस एक्सटेंशन को Chrome Web Store से इंस्टॉल नहीं किया गया है उसे बाहरी एक्सटेंशन कहा जाता है. ऐसे डेवलपर जो किसी दूसरे सॉफ़्टवेयर को इंस्टॉल करने के दौरान एक्सटेंशन डिस्ट्रिब्यूट करना चाहते हैं या ऐसे नेटवर्क एडमिन जो अपने पूरे संगठन में कोई एक्सटेंशन डिस्ट्रिब्यूट करना चाहते हैं, Google Chrome एक्सटेंशन इंस्टॉल करने के इन तरीकों के साथ काम करता है:

  • प्राथमिकताएं JSON फ़ाइल इस्तेमाल करना (सिर्फ़ Mac OS X और Linux के लिए)
  • Windows रजिस्ट्री का इस्तेमाल करना (सिर्फ़ Windows के लिए)

दोनों तरीकों से, update_URL पर होस्ट किए गए एक्सटेंशन को इंस्टॉल किया जा सकता है. Windows और Mac पर, update_URL को 'Chrome वेब स्टोर' पर ले जाना चाहिए जहां एक्सटेंशन को होस्ट किया जाना चाहिए.

Linux पर प्राथमिकताएं फ़ाइल आपके खुद के सर्वर पर ले जा सकती है जहां आप एक्सटेंशन को होस्ट कर रहे हैं. प्राथमिकताएं JSON फ़ाइल, उपयोगकर्ता के Linux कंप्यूटर पर, .crx एक्सटेंशन फ़ाइल से एक्सटेंशन इंस्टॉल करने की सुविधा भी देती है.

शुरू करने से पहले

सबसे पहले, Chrome वेब स्टोर में एक्सटेंशन publish या किसी .crx फ़ाइल को पैकेज करें. साथ ही, पक्का करें कि यह सही तरीके से इंस्टॉल हो गया हो.

अगर आपको किसी अपडेट यूआरएल से इंस्टॉल करना है, तो पक्का करें कि एक्सटेंशन सही तरीके से होस्ट किया गया हो.

प्राथमिकताओं वाली फ़ाइल या रजिस्ट्री में बदलाव करने से पहले, इन बातों का ध्यान रखें:

  • एक्सटेंशन की .crx फ़ाइल की जगह की जानकारी या अपडेट का वह यूआरएल जिससे इसे दिखाया जाता है
  • एक्सटेंशन का वर्शन (मेनिफ़ेस्ट फ़ाइल या chrome://extensions पेज से)
  • एक्सटेंशन का आईडी (पैक किया गया एक्सटेंशन लोड करने पर chrome://extensions पेज से)

नीचे दिए गए उदाहरणों में माना जाता है कि वर्शन 1.0 है और आईडी aaaaaaaaaabbbbbbbbbbcccccccccc है.

प्राथमिकताएं फ़ाइल इस्तेमाल करना

  1. अगर Linux पर किसी फ़ाइल से इंस्टॉल किया जा रहा है, तो .crx एक्सटेंशन फ़ाइल को उस मशीन पर उपलब्ध कराएं जिस पर आपको एक्सटेंशन इंस्टॉल करना है. (उसे किसी लोकल डायरेक्ट्री में या नेटवर्क शेयर में कॉपी करें, जैसे कि \\server\share\extension.crx या /home/share/extension.crx.)
  2. नीचे दिए गए फ़ोल्डर में से, किसी एक फ़ोल्डर में इस नाम की फ़ाइल बनाएं: aaaaaaaaaabbbbbbbbbbcccccccccc.json जहां फ़ाइल का नाम (बिना एक्सटेंशन के) एक्सटेंशन के आईडी से जुड़ा होता है. जगह, ऑपरेटिंग सिस्टम के हिसाब से तय होती है.

    Mac OS X:

    किसी खास उपयोगकर्ता के लिए: ~USERNAME/Library/Application Support/Google/Chrome/External Extensions/ सभी उपयोगकर्ताओं के लिए: /Library/Application Support/Google/Chrome/External Extensions/

    सभी उपयोगकर्ताओं के लिए बाहरी एक्सटेंशन फ़ाइल को सिर्फ़ तब पढ़ा जाता है, जब पाथ की हर डायरेक्ट्री का मालिकाना हक उपयोगकर्ता root के पास हो. साथ ही, उसमें admin या wheel ग्रुप हो, और वह दुनिया में राइट करने लायक न हो. पाथ में सिंबॉलिक लिंक भी नहीं होने चाहिए. इन पाबंदियों की वजह से कोई खास उपयोगकर्ता, सभी उपयोगकर्ताओं के लिए एक्सटेंशन इंस्टॉल नहीं कर सकता. ज़्यादा जानकारी के लिए समस्या का हल देखें.

    Linux:

    /opt/google/chrome/extensions/

    /usr/share/google-chrome/extensions/

    ध्यान दें: अगर ज़रूरी हो, तो chmod का इस्तेमाल करें, ताकि यह पक्का किया जा सके कि aaaaaaaaaabbbbbbbbbbcccccccccc.json फ़ाइलों को आसानी से पढ़ा जा सके.

  3. सिर्फ़ Linux के लिए: अगर किसी फ़ाइल से इंस्टॉल किया जा रहा है, तो एक्सटेंशन की जगह और वर्शन के बारे में बताने के लिए, ऊपर बनाई गई फ़ाइल में "external_crx" और "external_version" नाम वाले फ़ील्ड के बारे में बताएं.

    • उदाहरण:
    • json { "external_crx": "/home/share/extension.crx", "external_version": "1.0" }
    • ध्यान दें: आपको हर \` character in the location. For example,\server\share\extension.crxwould be"\\server\share\extension.crx"` को एस्केप करना होगा.
    • अगर अपडेट किसी यूआरएल से इंस्टॉल किया जा रहा है, तो एक्सटेंशन के अपडेट यूआरएल के साथ फ़ील्ड नाम "external_update_url" बताएं.
    • लोकल .crx फ़ाइल से इंस्टॉल करने का उदाहरण (सिर्फ़ Linux):
    • json { "external_update_url": "http://myhost.com/mytestextension/updates.xml" }
    • Chrome Web Store (Mac और Linux) से इंस्टॉल करने का उदाहरण:
    • json { "external_update_url": "https://clients2.google.com/service/update2/crx" }
    • अगर आपको सिर्फ़ कुछ ब्राउज़र स्थान-भाषा के लिए एक्सटेंशन इंस्टॉल करना है, तो "supported_locale" फ़ील्ड के नाम में उन जगहों की जानकारी डालें जो इसके साथ काम करती हैं. स्थान-भाषा, "en" जैसी पैरंट स्थान-भाषा के बारे में बता सकती है. इस स्थिति में, एक्सटेंशन "en-US", "en-GB" वगैरह जैसे सभी अंग्रेज़ी स्थान-भाषा के लिए इंस्टॉल किया जाएगा. अगर कोई ऐसी दूसरी ब्राउज़र स्थान-भाषा चुनी जाती है जो एक्सटेंशन के साथ काम नहीं करती, तो बाहरी एक्सटेंशन अनइंस्टॉल कर दिए जाएंगे. अगर "supported_locales" सूची मौजूद नहीं है, तो एक्सटेंशन को किसी भी स्थान-भाषा के लिए इंस्टॉल किया जाएगा.
    • उदाहरण:
    • json { "external_update_url": "https://clients2.google.com/service/update2/crx", "supported_locales": [ "en", "fr", "de" ] }
  4. JSON फ़ाइल सेव करें.

  5. Google Chrome लॉन्च करें और chrome://extensions पर जाएं. आपको सूची में एक्सटेंशन दिखेगा.

Mac OS की अनुमतियों से जुड़ी समस्याओं को हल करना

Mac OS पर, सभी उपयोगकर्ताओं के लिए बाहरी एक्सटेंशन फ़ाइलों को सिर्फ़ तब पढ़ा जाता है, जब फ़ाइल सिस्टम की अनुमतियां ऐसे उपयोगकर्ताओं को इसे बदलने से रोकती हैं जिन्हें इसकी अनुमति नहीं है. अगर Chrome लॉन्च होने पर आपको इंस्टॉल किए गए बाहरी एक्सटेंशन नहीं दिखते, तो हो सकता है कि बाहरी एक्सटेंशन की प्राथमिकताओं वाली फ़ाइलों में अनुमतियों की समस्या हो. यह देखने के लिए कि क्या यह समस्या है, इन चरणों का पालन करें:

  1. Console प्रोग्राम लॉन्च करें. इसे /Applications/Utilities/कंसोल में जाकर देखा जा सकता है.
  2. अगर कंसोल में सबसे बाईं ओर मौजूद आइकॉन "लॉग सूची दिखाएं" दिखाता है, तो उस आइकॉन पर क्लिक करें. बाईं ओर एक दूसरा कॉलम दिखता है.
  3. बाएं पैनल में, "कंसोल मैसेज" पर क्लिक करें.
  4. बाहरी एक्सटेंशन नहीं पढ़े जा सकते स्ट्रिंग खोजें. अगर बाहरी एक्सटेंशन फ़ाइलों को पढ़ने में कोई समस्या हो रही है, तो आपको गड़बड़ी का मैसेज दिखेगा. इसके ठीक ऊपर, गड़बड़ी का कोई दूसरा मैसेज देखें, जिससे समस्या के बारे में पता चल सके. उदाहरण के लिए, अगर आपको यह गड़बड़ी दिखती है: "पाथ /Library/Application Support/Google/Chrome का मालिकाना हक गलत ग्रुप के पास है", तो आपको chgrp या Finder के ग्रुप के मालिक को एडमिन ग्रुप में बदलने के लिए, Finder के'जानकारी पाएं' डायलॉग का इस्तेमाल करना होगा.
  5. समस्या ठीक करने के बाद, Chrome को फिर से लॉन्च करें. जांच करें कि अब बाहरी एक्सटेंशन इंस्टॉल हो गया है या नहीं. यह संभव है कि अनुमति की एक गड़बड़ी, Chrome को दूसरी गड़बड़ी का पता लगाने से रोकती हो. अगर बाहरी एक्सटेंशन इंस्टॉल नहीं हुआ है, तो यह तरीका तब तक दोहराएं, जब तक आपको Console ऐप्लिकेशन में गड़बड़ी न दिखे.

Windows रजिस्ट्री का इस्तेमाल करना

  1. रजिस्ट्री में यह कुंजी ढूंढें या बनाएं:
    • Windows 32-बिट: HKEY_LOCAL_MACHINE\Software\Google\Chrome\Extensions
    • Windows 64-बिट: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Google\Chrome\Extensions
  2. एक्सटेंशन कुंजी में, अपने एक्सटेंशन के आईडी वाले नाम से ही एक नई कुंजी (फ़ोल्डर) बनाएं (उदाहरण के लिए, aaaaaaaaaabbbbbbbbbbcccccccccc).
  3. अपनी एक्सटेंशन कुंजी में, "update_url" प्रॉपर्टी बनाएं और उसकी वैल्यू पर सेट करें: "https://clients2.google.com/service/update2/crx" (यह Chrome Web Store में आपके एक्सटेंशन के crx पर ले जाता है):

    {
      "update_url": "https://clients2.google.com/service/update2/crx"
    }
    
  4. ब्राउज़र खोलें और chrome://extensions पर जाएं. आपको सूची में एक्सटेंशन दिखेगा.

अपडेट और अनइंस्टॉल करना

Google Chrome, हर बार ब्राउज़र शुरू करने पर प्राथमिकताओं और रजिस्ट्री में मेटाडेटा एंट्री को स्कैन करता है और इंस्टॉल किए गए बाहरी एक्सटेंशन में सभी ज़रूरी बदलाव करता है.

अपने एक्सटेंशन को नए वर्शन में अपडेट करने के लिए, फ़ाइल को अपडेट करें. इसके बाद, सेटिंग या रजिस्ट्री में वर्शन को अपडेट करें.

अपने एक्सटेंशन को अनइंस्टॉल करने के लिए, (उदाहरण के लिए, अगर आपका सॉफ़्टवेयर अनइंस्टॉल कर दिया गया है), तो रजिस्ट्री से अपनी प्राथमिकता फ़ाइल (aaaaaaaaaabbbbbbbbccccकॉपी.json) या मेटाडेटा हटाएं.

अक्सर पूछे जाने वाले सवाल

इस सेक्शन में, बाहरी एक्सटेंशन के बारे में अक्सर पूछे जाने वाले सवालों के जवाब दिए गए हैं.

क्या Google Chrome पर "प्री-इंस्टॉल" की अनुमति देने वाला तरीका M33 के बाद से भी काम करेगा?

हां, लेकिन सिर्फ़ Chrome Web Store update_URL से इंस्टॉल करने के तौर पर, लोकल फ़ाइल पाथ से नहीं.

क्या किसी यूआरएल को बाहरी एक्सटेंशन के पाथ के तौर पर सेट किया जा सकता है?

हां, Mac OS X और Linux के लिए preferences JSON फ़ाइल का इस्तेमाल करें; Windows के लिए registry का इस्तेमाल करें. एक्सटेंशन, होस्टिंग में बताए गए तरीके से होस्ट किया जाना चाहिए. प्राथमिकताओं वाली फ़ाइल में, "external_update_url" प्रॉपर्टी का इस्तेमाल करके उस अपडेट मेनिफ़ेस्ट पर ले जाएं जिसमें आपके एक्सटेंशन का यूआरएल है. Windows रजिस्ट्री में, "update_url" प्रॉपर्टी का इस्तेमाल करें.

प्राथमिकता वाली फ़ाइल के साथ इंस्टॉल करते समय, आम तौर पर होने वाली कुछ गलतियां क्या हैं?

  • वह आईडी/वर्शन नहीं दे रहा है जो .crx में दिया गया है
  • .json फ़ाइल (aaaaaaaaaabbbbbbbbbbcccccccccc.json) गलत जगह पर है या बताया गया आईडी, एक्सटेंशन आईडी से मेल नहीं खा रहा है.
  • JSON फ़ाइल में सिंटैक्स गड़बड़ी (कॉमा से एंट्री को अलग करना या बाद में कॉमा लगाना और उन्हें कहीं और छोड़ना)
  • JSON फ़ाइल की एंट्री, .crx (या पाथ बताया गया है, लेकिन फ़ाइल नाम नहीं है) के गलत पाथ पर ले जाती है
  • यूएनसी पाथ में बैकस्लैश एस्केप नहीं किए गए हैं (उदाहरण के लिए, "\\server\share\file" गलत है; इसे "\\\\server\\share\\extension" होना चाहिए)
  • नेटवर्क शेयर करने की अनुमतियों से जुड़ी समस्याएं

रजिस्ट्री के साथ इंस्टॉल करते समय होने वाली कुछ आम गलतियां क्या हैं?

  • वह आईडी/वर्शन तय नहीं करना जो Chrome Web Store में लिस्ट किया गया है
  • रजिस्ट्री में गलत जगह पर कुंजी बनाई गई
  • रजिस्ट्री के एंट्री पॉइंट, Chrome Web Store में .crx फ़ाइल का गलत पाथ ले जाते हैं
  • नेटवर्क शेयर करने की अनुमतियों से जुड़ी समस्याएं

मैं सिलसिलेवार तरीके से अपनी नेटिव बाइनरी और एक्सटेंशन को कैसे अपडेट करूं?

पहले जब स्टोर से बाहर के एक्सटेंशन काम करते थे, तब नेटिव बाइनरी का इस्तेमाल किया जा सकता था. साथ ही, लॉक चरण में एक्सटेंशन को अपडेट किया जा सकता था. हालांकि, 'Chrome वेब स्टोर' पर होस्ट किए गए एक्सटेंशन, Chrome अपडेट करने के उस तरीके से अपडेट होते हैं जिसे डेवलपर कंट्रोल नहीं करते. एक्सटेंशन डेवलपर को ऐसे एक्सटेंशन को अपडेट करते समय सावधानी बरतनी चाहिए जो नेटिव बाइनरी पर निर्भर होते हैं. उदाहरण के लिए, एपीपीआई का इस्तेमाल करने वाले लेगसी एक्सटेंशन.

अगर उपयोगकर्ता एक्सटेंशन को अनइंस्टॉल करता है, तो क्या होगा?

अगर उपयोगकर्ता यूज़र इंटरफ़ेस (यूआई) की मदद से एक्सटेंशन को अनइंस्टॉल करता है, तो यह हर स्टार्टअप पर इंस्टॉल या अपडेट नहीं होगा. दूसरे शब्दों में, बाहरी एक्सटेंशन को ब्लॉकलिस्ट में रखा गया है.

मैं ब्लॉकलिस्ट से बाहर कैसे निकलूं?

अगर उपयोगकर्ता आपके एक्सटेंशन को अनइंस्टॉल करता है, तो आपको उस फ़ैसले का पालन करना चाहिए. हालांकि, अगर आपने (डेवलपर) ने गलती से यूज़र इंटरफ़ेस (यूआई) से आपका एक्सटेंशन अनइंस्टॉल कर दिया है, तो ब्लॉकलिस्ट टैग को हटाया जा सकता है. ऐसा करने के लिए, एक्सटेंशन को यूज़र इंटरफ़ेस (यूआई) के ज़रिए सामान्य रूप से इंस्टॉल करें और फिर उसे अनइंस्टॉल करें.