मैं एक Windows उपयोगकर्ता हूँ और जब तक मुझे याद है तब से हूँ। मैंने Linux के साथ भी छेड़छाड़ की है लेकिन Windows पर अटका रहा क्योंकि मैंने इसे अपने लिए थोड़ा कम नेकबियर्डी पाया। दोनों के अपने फायदे और नुकसान हैं। लेकिन जब मैंने वेब डेवलपमेंट सीखना शुरू किया तो Windows के साथ मेरे लिए सबसे बड़ा नुकसान मेरे सभी Linux कमांड लाइन टूल्स की कमी थी।
यह तब तक था जब तक Windows Subsystem Linux (WSL) साथ नहीं आया ?
मुझे यह पसंद है! आप Windows में एक Bash शेल रख सकते हैं और इसके माध्यम से अपने सभी Node.js ऐप्स भी चला सकते हैं और Windows 10 फॉल क्रिएटर्स अपडेट के साथ, WLM सेट अप करना वास्तव में आसान है।
मैं इस पोस्ट क्यों कर रहा हूँ इस पर त्वरित बैकस्टोरी। मैंने दूसरे दिन अपना लैपटॉप न्यूक कर दिया क्योंकि मुझे WSL के साथ nvm का उपयोग करने से संबंधित Bash on Windows के साथ समस्याएं हो रही थीं। मैं अपने कंप्यूटर के प्रदर्शन से निराश हो रहा था। लेकिन मुझे अब एहसास हुआ कि मैंने ओवररिएक्ट किया।
अपने कंप्यूटर को फिर से चालू करने के बाद, मुझे अपना विकास वातावरण फिर से स्क्रैच से सेट अप करना पड़ा। सौभाग्य से मेरे लिए, मैं एक GitHub रिपो में एक विनाशकारी घटना (जैसे एक न्यूक किया गया कंप्यूटर) या नया कंप्यूटर मिलने की स्थिति में अपनी सभी सेटिंग्स और कॉन्फ़िगरेशन जानकारी रखता हूँ।
इस लेख में, मैं आपको दिखाना चाहता हूँ कि मैं अपने विकास वातावरण के लिए Windows Subsystem Linux कैसे सेट अप करता हूँ।
यह WSL के मेरे विशिष्ट सेटअप और उपयोग पर मेरी राय है और यह अगली बार जब मुझे Windows पर स्क्रैच से एक विकास वातावरण स्पिन अप करना हो तो मेरा चरण-दर-चरण गाइड है।
तो, Microsoft Store से WSL इंस्टॉल करने और अपना डिफ़ॉल्ट उपयोगकर्ता जोड़ने के बाद, पहली चीज सब कुछ अपडेट और अपग्रेड करना है।
sudo apt updatesudo apt -y upgradeयदि आपने पहले किसी Linux वितरण का उपयोग नहीं किया है तो अपग्रेड स्टेटमेंट में -y टर्मिनल में प्रदर्शित किसी भी प्रॉम्प्ट का उत्तर "हाँ" में डिफ़ॉल्ट करने के लिए है। आप ऐसा नहीं करना चाह सकते हैं, क्योंकि कुछ प्रोग्राम हो सकते हैं जिन्हें आप अपडेट नहीं करना चाहते लेकिन मैं करता हूँ।

-y फ्लैग जोड़कर, आपको ये संदेश नहीं मिलेंगे ?
बिल्ड टूल्स
npm से नेटिव एड-ऑन को संकलित और इंस्टॉल करने के लिए आपको बिल्ड टूल्स इंस्टॉल करने की भी आवश्यकता हो सकती है, मुझे Gatsby images के लिए इसकी आवश्यकता है जो sharp का उपयोग करता है जो बदले में node-gyp का उपयोग करता है:
sudo apt install -y build-essentialNode इंस्टॉल करें
Node.js को nodejs.org साइट पर दिए गए निर्देशों के माध्यम से इंस्टॉल करने से मेरे लिए सही अनुमतियां सेट नहीं होती हैं। इसलिए जब npm install कुछ भी करने की कोशिश करता है तो मुझे त्रुटियां मिलती हैं, मैंने पाया कि n का उपयोग मदद करता है:
n के साथ Node इंस्टॉल करें
चूंकि यह एक नई इंस्टॉल है तो हम आगे बढ़कर n-install का उपयोग कर सकते हैं:
curl -L https://git.io/n-install | bashयह Node का नवीनतम स्थिर संस्करण इंस्टॉल करेगा ?
एक बार स्क्रिप्ट पूरी हो जाने पर, इस कमांड के साथ bash को पुनरारंभ करें:
. /home/my_user_name/.bashrc # यह आपको कॉपी पेस्ट करने के लिए प्रदर्शित करता हैअपने Node और npm संस्करण जांचें:
node -v && npm -vFish इंस्टॉल करें ?
Fish अब मेरा पसंदीदा शेल है विशुद्ध रूप से ऑटो कम्प्लीट/इंटेलीसेंस के लिए ? इसके लिए कुछ अच्छे थीम भी हैं जो आप प्राप्त कर सकते हैं।

sudo apt -y install fishsudo apt -y upgrade && sudo apt -y autoremoveOh My Fish | OMF इंस्टॉल करें
Oh My Fish Fish के लिए एक पैकेज मैनेजर की तरह है जो पैकेज और थीम की इंस्टॉलेशन को सक्षम बनाता है।
curl -L https://get.oh-my.fish | fishOMF थीम इंस्टॉल करें
omf install clearanceशुरुआत की शुरुआत
ठीक है, तो यह WSL के लिए एक बुनियादी सेटअप है। आप शायद अब Git सेट अप करना चाहेंगे। मैं कुछ समय से WSL पर HTTPS के बजाय SSH का उपयोग कर रहा हूँ।
नोट: इस लेखन के समय, WSL Git इंटीग्रेशन VSCode के साथ काम नहीं करता इसलिए मैंने अपनी Windows मशीन पर एक Git इंस्टॉल जोड़ा है, आप इसे छोड़ सकते हैं और टर्मिनल के माध्यम से पूर्ण Git कर सकते हैं लेकिन मुझे वास्तव में VSCode Git इंटीग्रेशन पसंद है।
अपनी मशीन पर SSH सेट अप करने के लिए इस आसान SSH सेटअप पर एक नज़र डालें। मैं HTTPS के बजाय SSH कहता हूं क्योंकि मुझे Git क्रेडेंशियल मैनेजर और कीरिंग मैनेजर के साथ सभी प्रकार की समस्याएं थीं। अंत में SSH कुंजी बनाना और GitHub के साथ प्रमाणित करना वास्तव में तेज़ था। मैंने जो गाइड लिंक किया है वह आपको इसके माध्यम से ले जाता है।
अपनी डॉटफाइल्स ले जाएं
यदि आपकी सभी डॉटफाइल्स GitHub रिपो में बैकअप हैं तो अब उन्हें अपने WSL फ़ोल्डर में जोड़ने का अच्छा समय है, पिछली बार जब मैंने यह किया तो मैंने प्रत्येक फ़ाइल को ले जाने के बाद मैन्युअल रूप से अनुमतियां सेट की थीं लेकिन तब से rsync की खोज की है जो सभी फ़ाइलों को स्थानांतरित करता है।
rsync -avzh /mnt/c/Users/dotfiles/ ~/यह मेरे dotfiles फ़ोल्डर की सामग्री को WSL में ~/ (होम) निर्देशिका में कॉपी करेगा, आप उन्हें जांच सकते हैं:
ls -la ~/
मैंने यहां चित्रित अपनी .gitconfig, .gitignore और .npmrc डॉटफाइल्स कॉपी कीं और आप देख सकते हैं कि अनुमतियां .bashrc फ़ाइल के अनुरूप नहीं हैं।
chmod के साथ फ़ाइल अनुमतियां बदलें और समान फ़ाइल के गुण प्राप्त करने के लिए stat का उपयोग करें:
stat -c “%a %n” ~/.*यह उन सभी चीजों को सूचीबद्ध करेगा जो . से शुरू होती हैं, यहाँ मेरी हैं:
777 /home/scott/.755 /home/scott/..600 /home/scott/.bash_history644 /home/scott/.bash_logout644 /home/scott/.bashrc777 /home/scott/.gitconfig777 /home/scott/.gitignore777 /home/scott/.local777 /home/scott/.npm777 /home/scott/.npmrc644 /home/scott/.profile644 /home/scott/.sudo_as_admin_successfulमैं केवल .gitconfig, .gitignore और .npmrc को यहां बदलना चाहता हूं इसलिए मैं यह करने जा रहा हूँ:
chmod 644 .gitconfig .gitignore .npmrcऔर अब मेरी फ़ाइलें ऐसी दिखती हैं। ?

ठीक है अब हम एक अपडेटेड Ubuntu इंस्टॉल, Node और Fish टर्मिनल के साथ चालू और चल रहे हैं। बेशक अभी भी आपके द्वारा विकास के लिए चाहे जाने वाले सभी ग्लोबल npm पैकेज इंस्टॉल करने का मामला है।
शुभकामनाएं!
पढ़ने के लिए धन्यवाद
अगर आपको यह दिलचस्प लगा, तो एक या दो क्लैप दें, भविष्य के अपडेट के लिए सब्सक्राइब करें या मुझे अपने विचार ट्वीट करें।
अगर कुछ ऐसा है जो मैं चूक गया हूँ, या अगर आपके पास कुछ करने का बेहतर तरीका है तो कृपया मुझे बताएं।
मुझे ट्विटर पर प्राप्त करें या GitHub पर Ask Me Anything करें।
आप मेरे ब्लॉग पर ऐसे अन्य लेख पढ़ सकते हैं।