আমি একজন উইন্ডোজ ইউজার এবং যেহেতু মনে পড়ে তখন থেকে। আমি লিনাক্সের সাথে কিছু এক্সপেরিমেন্ট করেছি কিন্তু উইন্ডোজে আটকে রেখেছি কারণ আমার মতে এটি কিছুটা কম "नेकবার্ডি" (geeky)। উভয়ই তাদের প্রস-কন্স আছে। কিন্তু ওয়েব ডেভেলপমেন্ট শেখা শুরু করার সময় উইন্ডোজের সবচেয়ে বড় কন ছিল আমার সব লিনাক্স কমান্ড লাইন টুলসের অভাব।
তবেই Windows Subsystem Linux (WSL) এলো ?
আমি এটিকে ভালোবাসি! উইন্ডোজে Bash শেল পাওয়া যায় এবং সেটির মাধ্যমে সব Node.js অ্যাপও চালানো যায়, এবং Windows 10 Fall Creators Update-র সাথে WSL সেটআপ করা খুব সহজ হয়েছে।
কেন এই পোস্ট লিখছি তার কুইক ব্যাকস্টোরি। আমি একদিন আমার ল্যাপটপ নাকি করলাম কারণ WSL-এ Bash-র সাথে কিছু সমস্যা হয়েছিল, আংশিকভাবে nvm WSL-এ ব্যবহার করার কারণে। আমি আমার কম্পিউটারের পারফরম্যান্স দেখে ফ্রাস্ট্রেটেড হয়েছিলাম। কিন্তু এখন বুঝলাম আমি ওভাররিঐ্যাক্ট করেছিলাম।
আমার কম্পিউটার রিকভার করার পর, আমাকে আবার স্ক্র্যাচ থেকে ডেভেলপমেন্ট এনভায়রনমেন্ট সেটআপ করতে হয়েছে। خوشকতব্যভাগ্যবশত, আমি আমার সেটিংস এবং কনফিগ ইনফো একটি GitHub রিপোতে রাখি নতুন কম্পিউটার পাওয়ার সময় বা ক্যাটას্ট্রোফিক ইভেন্ট (নাকি করা কম্পিউটার/r) রিকভারির জন্য।
এই আর্টিকেলে, আমি দেখাতে চাই কীভাবে আমি আমার Windows Subsystem Linux-কে ডেভেলপমেন্ট এনভায়রনমেন্টের জন্য সেটআপ করি।
এটি আমার মতামত ভিত্তিক ভিউ আমার স্পেসিফিক সেটআপ এবং WSL-এর ব্যবহার সম্পর্কে এবং এটি আমার স্টেপ-বাই-স্টেপ গাইড അടিবার যখন আমাকে উইন্ডোজে স্ক্র্যাচ থেকে ডেভেলপমেন্ট এনভায়রনমেন্ট স্পিন আপ করতে হবে।
তাহলে, Microsoft Store থেকে WSL ইনস্টল করে এবং ডিফল্ট ইউজার অ্যাড করার পর, প্রথম কাজ হলো সব কিছু আপডেট ও আপগ্রেড করা।
sudo apt update
sudo apt -y upgrade
আপনি যদি আগে কোনো লিনাক্স ডিস্ট্রিবিউশন ব্যবহার না করে থাকেন, তবে আপগ্রেড স্টেটমেন্টে -y টার্মিন্যালে দেখানো যেকোনো প্রম্পটের জন্য "Yes" ডিফল্ট করে দেয়। আপনি এটি করতে চাইতে পারেন না, কারণ কিছু প্রোগ্রাম আপনি আপগ্রেড করতে চাইতে পারেন না কিন্তু আমি করি।

-y ফ্ল্যাগ অ্যাড করলে আপনাকে এই মেসেজগুলো দেখতে হবে না ?
বিল্ড টুলস
npm-র থেকে নেটিভ অ্যাড-অন কম্পাইল ও ইনস্টল করতে হলে বিল্ড টুলসও ইনস্টল করতে হতে পারে, আমার এটার প্রয়োজন Gatsby ইমেজের জন্য যা sharp ব্যবহার করে যা আবার node-gyp ব্যবহার করে:
sudo apt install -y build-essential
Node ইনস্টল করুন
nodejs.org-এ দেওয়া ইনস্ট্রাকশন দিয়ে Node.js ইনস্টল করলে আমার জন্য সঠিক পারমিশন সেট হয় না। তাই 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 -v
Fish ইনস্টল করুন ?
Fish এখন আমার প্রিয় শেল শুধু অটো-কমপ্লিট/ইন্টেলিসেন্সের জন্য ? এর জন্য কিছু সুন্দর থিমও পাওয়া যায়।

sudo apt -y install fish
sudo apt -y upgrade && sudo apt -y autoremove
Oh My Fish | OMF ইনস্টল করুন
Oh My Fish Fish-এর জন্য একটি প্যাকেজ ম্যানেজার যা প্যাকেজ এবং থিম ইনস্টল করতে সক্ষম করে।
curl -L https://get.oh-my.fish | fish
OMF থিম ইনস্টল করুন
omf install clearance
শুরুর শুরু
ঠিক আছে, এইটিই WSL-এর বেসিক সেটআপ। এখন আপনি সম্ভবত Git সেটআপ করতে চাবেন। আমি কিছুক্ষণ ধরে WSL-এ SSH over HTTPS ব্যবহার করছি।
নোট: লেখা লেখার সময়, WSL Git ইন্টিগ্রেশন VSCode-এ কাজ করে না, তাই আমি আমার উইন্ডোজ মেশিনে Git ইনস্টল যোগ করেছি, আপনি এটি বাদ দিয়ে ফুল Git টার্মিনাল দিয়ে যেতে পারেন কিন্তু আমি VSCode Git ইন্টিগ্রেশন খুব পছন্দ করি।
আপনার মেশিনে SSH সেটআপ করতে এই হ্যান্ডি SSH সেটআপ দেখুন। আমি SSH বললাম HTTPS-এর পরিবর্তে কারণ Git credential manager এবং keyring manager-র সাথে সব ধরনের সমস্যা ছিল। শেষে事实证明 SSH কী তৈরি করে GitHub-এ authenticate করা আসলে দ্রুত ছিল। লিংক করা গাইড আপনাকে ধাপে ধাপে জানাবে।
আপনার ডটফাইলগুলো সরান
আপনার সব ডটফাইল যদি 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/.cache777 /home/scott/.config777 /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 করুন।
আপনি আমার ব্লগে এই ধরনের অন্যান্য আর্টিকেল পড়তে পারেন।