# डब्लूएसएल (लिनक्स के लिए विंडोज सबसिस्टम) एकीकरण डब्लूएसएल आपको विंडोज़ पर सीधे पूर्ण लिनक्स वातावरण चलाने की सुविधा देता है। एक बार सेट हो जाने पर, STT शेल एकीकरण **लिनक्स बैश या Zsh गाइड के समान** काम करता है - शेल फ़ंक्शन के लिए किसी विंडोज़-विशिष्ट अनुकूलन की आवश्यकता नहीं होती है। > **इनके लिए अनुशंसित:** विंडोज़ उपयोगकर्ता जो लिनक्स टर्मिनल के साथ सहज हैं, या जिनके पास विकास कार्य के लिए पहले से ही डब्लूएसएल स्थापित है। डब्लूएसएल सबसे विश्वसनीय अनुभव और सबसे कम अनुकूलता समझौता प्रदान करता है। ## पूर्वावश्यकताएँ ### डब्लूएसएल स्थापित करें (एक बार सेटअप) PowerShell या CMD को **प्रशासक के रूप में** खोलें और चलाएँ: __CODE_ब्लॉक_0__ यह डिफ़ॉल्ट रूप से Ubuntu के साथ WSL2 स्थापित करता है। संकेत मिलने पर अपनी मशीन पुनः प्रारंभ करें। एक विशिष्ट वितरण स्थापित करने के लिए: __CODE_ब्लॉक_1__ सभी उपलब्ध वितरणों की सूची बनाएं: __CODE_ब्लॉक_2__ ### अपना WSL संस्करण सत्यापित करें __CODE_ब्लॉक_3__ सुनिश्चित करें कि `संस्करण` कॉलम `2` दिखाता है। यदि यह `1` दिखाता है, तो इसके साथ अपग्रेड करें: __CODE_ब्लॉक_4__ ## डब्ल्यूएसएल के अंदर शैल एकीकरण एक बार WSL चलने के बाद, अपना लिनक्स टर्मिनल खोलें और अपने पसंदीदा शेल के लिए **लिनक्स शेल गाइड** का पालन करें: | शैल | मार्गदर्शक | |-------|-------| | बैश (WSL डिफ़ॉल्ट) | [bash-integration.md](../../linux/bash-integration.i18n/bash-integration-hilang.md) | | ज़श | [zsh-integration.md](../../linux/zsh-integration.i18n/zsh-integration-hilang.md) | | मछली | [fish-integration.md](../../linux/fish-integration.i18n/fish-integration-hilang.md) | | क्ष | [ksh-integration.md](../../linux/ksh-integration.i18n/ksh-integration-hilang.md) | | पॉज़िक्स श/डैश | [posix-sh-integration.md](../../linux/posix-sh-integration.i18n/posix-sh-integration-hilang.md) | बैश के साथ डिफ़ॉल्ट उबंटू/डेबियन डब्लूएसएल सेटअप के लिए, त्वरित पथ है: __कोड_ब्लॉक_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](https://aka.ms/terminal) विंडोज़ पर WSL का उपयोग करने का अनुशंसित तरीका है। यह प्रत्येक WSL वितरण के लिए एकाधिक टैब, पैन और प्रोफाइल का समर्थन करता है। इसे Microsoft Store से या इसके माध्यम से इंस्टॉल करें: __CODE_ब्लॉक_9__ सबसे सहज अनुभव के लिए अपने WSL वितरण को विंडोज टर्मिनल सेटिंग्स में डिफ़ॉल्ट प्रोफ़ाइल के रूप में सेट करें। ### डॉकर ऑन-डिमांड (लिनक्स) सिस्टम संसाधनों को बचाने के लिए, आप डॉकर को पृष्ठभूमि में लगातार चलने के बजाय केवल आवश्यकता पड़ने पर शुरू करने के लिए कॉन्फ़िगर कर सकते हैं (उदाहरण के लिए, जब ऑरा ट्रिनो डेटाबेस का अनुरोध करता है)। निरंतर पृष्ठभूमि सेवा को अक्षम करने और इसके बजाय "सॉकेट सक्रियण" को सक्षम करने के लिए निम्नलिखित कमांड चलाएँ: __CODE_ब्लॉक_10__ **इसे अद्यतन-सुरक्षित बनाएं (लिनक्स आर्क/मंज़रो उपयोगकर्ता):** पैकेज अपडेट कभी-कभी सॉकेट कॉन्फ़िगरेशन को रीसेट कर सकते हैं। इसे रोकने के लिए, एक सतत स्थानीय ओवरराइड बनाएं: __CODE_ब्लॉक_11__ सुनिश्चित करें कि निम्नलिखित पंक्तियाँ मौजूद हैं और टिप्पणी नहीं की गई हैं (`#` हटाएँ), फिर सहेजें और बाहर निकलें: __CODE_ब्लॉक_12__ ### डब्लूएसएल के अंदर डॉकर और किविक्स किविक्स हेल्पर स्क्रिप्ट (`kiwix-docker-start-if-not-running.sh`) के लिए डॉकर की आवश्यकता होती है। विंडोज़ के लिए डॉकर डेस्कटॉप स्थापित करें और WSL 2 एकीकरण सक्षम करें: 1. [Docker Desktop](https://www.docker.com/products/docker-desktop/) डाउनलोड और इंस्टॉल करें। 2. डॉकर डेस्कटॉप → सेटिंग्स → संसाधन → WSL एकीकरण में, अपना WSL वितरण सक्षम करें। 3. 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-सेकंड के डीप प्रोसेसिंग मोड पर वापस आ जाता है।