डब्लूएसएल (लिनक्स के लिए विंडोज सबसिस्टम) एकीकरण¶
डब्लूएसएल आपको विंडोज़ पर सीधे पूर्ण लिनक्स वातावरण चलाने की सुविधा देता है। एक बार सेट हो जाने पर, STT शेल एकीकरण लिनक्स बैश या Zsh गाइड के समान काम करता है - शेल फ़ंक्शन के लिए किसी विंडोज़-विशिष्ट अनुकूलन की आवश्यकता नहीं होती है।
इनके लिए अनुशंसित: विंडोज़ उपयोगकर्ता जो लिनक्स टर्मिनल के साथ सहज हैं, या जिनके पास विकास कार्य के लिए पहले से ही डब्लूएसएल स्थापित है। डब्लूएसएल सबसे विश्वसनीय अनुभव और सबसे कम अनुकूलता समझौता प्रदान करता है।
पूर्वावश्यकताएँ¶
डब्लूएसएल स्थापित करें (एक बार सेटअप)¶
PowerShell या CMD को प्रशासक के रूप में खोलें और चलाएँ:
CODE_ब्लॉक_0
यह डिफ़ॉल्ट रूप से Ubuntu के साथ WSL2 स्थापित करता है। संकेत मिलने पर अपनी मशीन पुनः प्रारंभ करें।
एक विशिष्ट वितरण स्थापित करने के लिए:
CODE_ब्लॉक_1
सभी उपलब्ध वितरणों की सूची बनाएं:
CODE_ब्लॉक_2
अपना WSL संस्करण सत्यापित करें¶
CODE_ब्लॉक_3
सुनिश्चित करें कि संस्करण कॉलम 2 दिखाता है। यदि यह 1 दिखाता है, तो इसके साथ अपग्रेड करें:
CODE_ब्लॉक_4
डब्ल्यूएसएल के अंदर शैल एकीकरण¶
एक बार WSL चलने के बाद, अपना लिनक्स टर्मिनल खोलें और अपने पसंदीदा शेल के लिए लिनक्स शेल गाइड का पालन करें:
शैल |
मार्गदर्शक |
|---|---|
बैश (WSL डिफ़ॉल्ट) |
|
ज़श |
|
मछली |
|
क्ष |
|
पॉज़िक्स श/डैश |
बैश के साथ डिफ़ॉल्ट उबंटू/डेबियन डब्लूएसएल सेटअप के लिए, त्वरित पथ है:
कोड_ब्लॉक_5
डब्ल्यूएसएल-विशिष्ट विचार¶
WSL से विंडोज़ फ़ाइलों तक पहुँचना¶
आपकी विंडोज़ ड्राइव /mnt/ के अंतर्गत माउंट की गई हैं:
कोड_ब्लॉक_6
यदि आपका प्रोजेक्ट विंडोज़ फ़ाइल सिस्टम पर रहता है (उदाहरण के लिए C:\Projects\stt), तो SL5NET_AURA_PROJECT_ROOT को यहां सेट करें:
CODE_ब्लॉक_7
इस पंक्ति को अपने ~/.bashrc (या अपने शेल के समतुल्य) ऊपर s() फ़ंक्शन में जोड़ें।
प्रदर्शन टिप: सर्वोत्तम I/O प्रदर्शन के लिए, प्रोजेक्ट फ़ाइलों को
/mnt/c/...के बजाय WSL फ़ाइल सिस्टम (जैसे~/projects/stt) के अंदर रखें। WSL और विंडोज़ के बीच क्रॉस-फ़ाइल सिस्टम एक्सेस काफी धीमी है।
WSL के अंदर पायथन आभासी वातावरण¶
WSL के अंदर एक मानक Linux वर्चुअल वातावरण बनाएं और उसका उपयोग करें:
CODE_ब्लॉक_8
फ़ंक्शन में PY_EXEC पथ ($SL5NET_AURA_PROJECT_ROOT/.venv/bin/python3) वैसे ही सही ढंग से काम करेगा।
विंडोज़ टर्मिनल से s चलाना¶
Windows Terminal विंडोज़ पर WSL का उपयोग करने का अनुशंसित तरीका है। यह प्रत्येक WSL वितरण के लिए एकाधिक टैब, पैन और प्रोफाइल का समर्थन करता है। इसे Microsoft Store से या इसके माध्यम से इंस्टॉल करें:
CODE_ब्लॉक_9
सबसे सहज अनुभव के लिए अपने WSL वितरण को विंडोज टर्मिनल सेटिंग्स में डिफ़ॉल्ट प्रोफ़ाइल के रूप में सेट करें।
डॉकर ऑन-डिमांड (लिनक्स)¶
सिस्टम संसाधनों को बचाने के लिए, आप डॉकर को पृष्ठभूमि में लगातार चलने के बजाय केवल आवश्यकता पड़ने पर शुरू करने के लिए कॉन्फ़िगर कर सकते हैं (उदाहरण के लिए, जब ऑरा ट्रिनो डेटाबेस का अनुरोध करता है)।
निरंतर पृष्ठभूमि सेवा को अक्षम करने और इसके बजाय “सॉकेट सक्रियण” को सक्षम करने के लिए निम्नलिखित कमांड चलाएँ:
CODE_ब्लॉक_10
इसे अद्यतन-सुरक्षित बनाएं (लिनक्स आर्क/मंज़रो उपयोगकर्ता): पैकेज अपडेट कभी-कभी सॉकेट कॉन्फ़िगरेशन को रीसेट कर सकते हैं। इसे रोकने के लिए, एक सतत स्थानीय ओवरराइड बनाएं:
CODE_ब्लॉक_11
सुनिश्चित करें कि निम्नलिखित पंक्तियाँ मौजूद हैं और टिप्पणी नहीं की गई हैं (# हटाएँ), फिर सहेजें और बाहर निकलें:
CODE_ब्लॉक_12
डब्लूएसएल के अंदर डॉकर और किविक्स¶
किविक्स हेल्पर स्क्रिप्ट (kiwix-docker-start-if-not-running.sh) के लिए डॉकर की आवश्यकता होती है। विंडोज़ के लिए डॉकर डेस्कटॉप स्थापित करें और WSL 2 एकीकरण सक्षम करें:
Docker Desktop डाउनलोड और इंस्टॉल करें।
डॉकर डेस्कटॉप → सेटिंग्स → संसाधन → WSL एकीकरण में, अपना WSL वितरण सक्षम करें।
WSL के अंदर सत्यापित करें: CODE_ब्लॉक_13
विंडोज़ से WSL s फ़ंक्शन को कॉल करना (वैकल्पिक)¶
यदि आप WSL टर्मिनल खोले बिना Windows CMD या PowerShell विंडो से s शॉर्टकट को लागू करना चाहते हैं, तो आप इसे लपेट सकते हैं:
CODE_ब्लॉक_14
CODE_ब्लॉक_15
-iध्वज एक इंटरैक्टिव शेल लोड करता है ताकि आपका~/.bashrc(औरsफ़ंक्शन) स्वचालित रूप से सोर्स हो जाए।
विशेषताएँ¶
पूर्ण लिनक्स संगतता: सभी यूनिक्स उपकरण (
टाइमआउट,पीजीआरईपी,एमकेटेम्प,ग्रेप) मूल रूप से काम करते हैं - किसी समाधान की आवश्यकता नहीं है।डायनेमिक पाथ्स: आपके शेल कॉन्फ़िगरेशन में
SL5NET_AURA_PROJECT_ROOTवेरिएबल सेट के माध्यम से प्रोजेक्ट रूट को स्वचालित रूप से ढूंढता है।ऑटो-रीस्टार्ट: यदि बैकएंड डाउन है, तो यह
start_serviceऔर स्थानीय विकिपीडिया सेवाओं को चलाने का प्रयास करता है (डॉकर चालू होना चाहिए)।स्मार्ट टाइमआउट्स: पहले 2-सेकंड की त्वरित प्रतिक्रिया का प्रयास करता है, फिर 70-सेकंड के डीप प्रोसेसिंग मोड पर वापस आ जाता है।