Ubuntu Touch पर दो सवाल एक जैसे पूछे जाते हैं: क्या यह डेस्कटॉप पैकेज चलेगा, और क्या फ़ोन को VPN मिलेगा। कंटेनर पहले का जवाब देता है। उसमें कुछ भी दूसरे का जवाब नहीं देता, क्योंकि कंटेनर का फ़ाइल सिस्टम पर अपना नज़रिया है, जबकि नेटवर्क स्टैक और उसकी नीति फ़ोन की हैं। कोई कार्यप्रवाह वादा करने से पहले देखिए कि हर हिस्सा कहाँ रहता है।

दो सवाल जो एक जैसे दिखते हैं

कंटेनर के अंदर डेस्कटॉप एप्लिकेशन चलाना पैकेजिंग की उपलब्धि है। फ़ोन के कनेक्शन मैनेजर को सुरंग बनाना, सस्पेंड के दौरान उसे बनाए रखना और गिरने पर क्या होगा यह तय करना प्लेटफ़ॉर्म का काम है। कंटेनर के अंदर पूरा होने वाला इंस्टॉलर केवल यह साबित करता है कि निर्भरताएँ वहीं हल हुईं। यह कुछ नहीं कहता कि फ़ोन में मंज़ूरशुदा VPN प्लगइन है या नहीं, सुरंग रीबूट के बाद टिकती है या नहीं, या कौन-से एप्लिकेशन उसका उपयोग करते हैं।

किसी भी मूल्यांकन में दोनों को अलग वाक्यों में रखिए। इन्हें मिलाना ही वह तरीका है जिससे लैब डेमो ऐसी सहायता-प्रतिबद्धता बन जाता है जिसे कोई निभा नहीं सकता।

कंटेनर की सीमा वास्तव में क्या देती है

Libertine कंटेनर एक लिखने योग्य वातावरण है जो ऐसे फ़ोन पर परतदार है जिसका बेस सिस्टम केवल पढ़ने योग्य है। इसीलिए वहाँ पैकेज इंस्टॉल करना बिलकुल काम करता है, और इसीलिए बेस सिस्टम पर वही इंस्टॉल काम नहीं करता। यह एप्लिकेशन फ़ोरग्राउंड में भी चलाता है, फ़ोन की स्क्रीन के साथ एकीकृत, और यह स्पष्ट रूप से सर्वर सॉफ़्टवेयर चलाने या किसी प्रक्रिया को पृष्ठभूमि में जीवित रखने का तरीका नहीं है। ये बाधाएँ VPN क्लाइंट के लिए मायने रखती हैं, जिससे चालू रहने की अपेक्षा होती है।

libertine-container-manager list
libertine-container-manager info -i <container-id>
libertine-launch -i <container-id> bash

सूची दिखाती है कि कौन-से कंटेनर हैं, और info कमांड वितरण व इंस्टॉल स्थिति बताता है। launch कमांड आपको अंदर एक शेल देता है, और पैकेज ने वास्तव में क्या इंस्टॉल किया यह जाँचने की सही जगह वही है। जो यह नहीं देता वह फ़ोन की नेटवर्किंग पर अधिकार है। कंटेनर के अंदर का बाइनरी जो सुरंग बनाना चाहता है उसे विशेषाधिकार प्राप्त इंटरफ़ेस चाहिए, और वह इंटरफ़ेस प्लेटफ़ॉर्म का है, कंटेनर का नहीं।

फ़ोन की नेटवर्क स्थिति कहाँ रहती है

नाम, रूट और कनेक्शन प्रोफ़ाइल फ़ोन की नेटवर्क सेवा द्वारा प्रबंधित होते हैं, किसी भी कंटेनर के बाहर। सुरंग प्रविष्टि वहाँ तभी दिखती है जब प्लेटफ़ॉर्म उस VPN प्रकार का समर्थन करता हो और ऑपरेटर ने संबंधित प्लगइन इंस्टॉल किया हो।

nmcli connection show
ip route get 10.42.0.10
ip -br addr show

कनेक्शन सूची इस सवाल का आधिकारिक जवाब है कि इस फ़ोन पर VPN प्रोफ़ाइल है या नहीं। अगर आपकी सुरंग उस सूची में नहीं है, तो कंटेनर के अंदर कोई भी काम उसे दिखा नहीं सकेगा। रूट खोज एक संकरे सवाल का जवाब देती है: यह फ़ोन एक गंतव्य के लिए कौन-सा इंटरफ़ेस उपयोग करेगा। यही वह जाँच है जिसे हर बदलाव के बाद दोहराना चाहिए, क्योंकि प्रोफ़ाइल हो सकता है और फिर भी वह वह रास्ता न हो जो कोई दिया हुआ एप्लिकेशन लेता है।

एक कार्यप्रवाह शुरू से अंत तक पढ़िए

असली काम चुनिए, जैसे डेस्कटॉप क्लाइंट से किसी निजी डेटाबेस तक पहुँचना। फिर प्रवाह देखिए: एप्लिकेशन कंटेनर में शुरू होता है, फ़ोन जो भी रिज़ॉल्वर उपयोग करता है उससे होस्टनाम हल करता है, सॉकेट खोलता है, और फ़ोन का रूटिंग तय करता है कि कौन-सा इंटरफ़ेस उसे ले जाएगा। हर कदम का एक मालिक है। कंटेनर एप्लिकेशन का मालिक है, प्लेटफ़ॉर्म रिज़ॉल्वर और रूटिंग का, और VPN एंडपॉइंट प्रमाणीकरण का। किसी भी कदम पर विफलता उस कदम की विफलता है, पूरे विचार की नहीं।

निजी होस्टनाम और निजी पता अलग-अलग जाँचिए। जो नाम सार्वजनिक पते पर हल होता है और जो पता सुरंग में रूट होता है वे अलग प्रेक्षण हैं, और इन्हें मिलाने से ऐसी रिपोर्ट बनती है जिसे दोहराया नहीं जा सकता।

जवाब न हो तो क्या दर्ज करें

कभी-कभी ईमानदार निष्कर्ष यही होता है कि यह फ़ोन, इस रिलीज़ पर, यह कार्यप्रवाह नहीं उठा सकता। इसे सबूत के साथ लिखिए: प्लेटफ़ॉर्म कौन-से कनेक्शन प्रकार देता है, कौन-से क्लाइंट आज़माए गए, और किस कदम पर विफलता हुई।

फिर वह विकल्प बताइए जिसे स्वीकार किया गया, चाहे वह दूसरा उपकरण हो, दूसरी पहुँच विधि हो, या ऐसा संकरा काम जो निजी नेटवर्क छुए बिना कंटेनर के अंदर ही रहे।

पुरानी विधि दोहराने के लिए बेस सिस्टम को फिर से माउंट करने या बिना समझाए विशेषाधिकार देने के लालच का विरोध कीजिए। जो फ़ोन बूट होता है वह उस फ़ोन जैसा नहीं है जिसकी नेटवर्क नीति पर छह महीने बाद भी आप तर्क कर सकें।

संबंधित लेख