Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบ >> Windows 10

ปรับปรุงการติดตั้ง WSL: อัตโนมัติ Setup สำหรับนักพัฒนาบน Windows

ผมเป็นผู้ใช้ Windows ตั้งแต่จำได้ ได้เล่น Linux บ้าง แต่คงอยู่กับ Windows เพราะรู้สึก น้อยกว่า Neckbeardy สำหรับผม ทั้งคู่มี Pros และ Cons แตข้อเสียใหญ่ของ Windows ตอนเริ่มเรียน Web Development คือ ขาด Command Line Tools ของ Linux ทั้งหมด

จนกว่า Windows Subsystem Linux (WSL) จะมา ?

ผมชอบมัน! คุณได้ Bash Shell ใน Windows รัน Node.js Apps ทั้งหมดผ่านมัน และ Windows 10 Fall Creators Update ทำให้ WSL ตั้งค่าง่ายมาก

Backstory สั้นๆ ทำไมถึงโพสต์นี้ ผม Nuke ลา็ปทอปเมื่อวาน เพราะปัญหา Bash on Windows เกี่ยวกับการใช้ nvm กับ WSL ผม沮丧กับ Performance ของเครื่อง แต่ตระหนักตอนนี้ว่า Overreact

หลังนำเครื่องกลับมาทำงานใหม่ ต้องตั้งค่า Development Environment ใหม่จากศูนย์ โชคดีที่ผมเก็บ Settings และ Config ทั้งหมดใน GitHub Repo เผื่อได้เครื่องใหม่ หรือ Recover จากเหตุการณ์วินาศกรรม (Nukee Computer)

ในบทความนี้ ผมอยากแสดง วิธีที่ผมตั้งค่า WSL สำหรับ Development Environment

นี่คือมุมมองที่มีอคติ (Opinionated) ของ Setup และ Usage WSL ของผม และคู่มือขั้นตอนต่อขั้นตอน สำหรับครั้งหน้าที่ต้อง Spin Up Dev Environment จากศูนย์บน Windows

หลังติดตั้ง WSL จาก Microsoft Store และเพิ่ม Default User อย่างแรกคือ Update และ Upgrade ทุกอย่าง

sudo apt updatesudo apt -y upgrade

ถ้ายังไม่เคยใช้ Linux Distributions -y ใน Upgrade Statement คือ Default คำตอบ "Yes" สำหรับ Prompts ที่แสดงใน Terminal อาจไม่อยากทำ เพราะอาจมีโปรแกรมบางอย่างไม่อยาก Update แตผมทำ

ปรับปรุงการติดตั้ง WSL: อัตโนมัติ Setup สำหรับนักพัฒนาบน Windows
Yes ทุกอย่าง!

เพิ่ม Flag -y คุณจะไม่เจอข้อความเหล่านี้ ?

Build Tools

เพื่อ Compile และ Install Native Add-ons จาก npm อาจต้องติดตั้ง Build Tools ผมต้องการสำหรับ Gatsby Images ที่ใช้ sharp ซึ่งใช้ node-gyp:

sudo apt install -y build-essential

ติดตั้ง Node

ติดตั้ง Node.js ตามคำแนะนำ nodejs.org ไม่ตั้งค่า Permissions ถูกต้องสำหรับผม ตอน npm install อะไรก็ตาม ได้ Errors พบว่าใช้ n ช่วย:

ติดตั้ง Node ด้วย n

เพราะ Fresh Install จึงไปต่อ n-install:

curl -L https://git.io/n-install | bash

จะติดตั้ง Node เวอร์ชัน Stable ล่าสุด ?

Script เสร็จ Restart Bash ด้วย:

. /home/my_user_name/.bashrc # แสดงให้ Copy Paste

เช็ค Node และ NPM Versions:

node -v && npm -v

ติดตั้ง Fish ?

Fish ตอนนี้เป็น Shell หลักของผม เพราะ Auto-complete/Intellisense ? มี Themes สวยๆ ด้วย

ปรับปรุงการติดตั้ง WSL: อัตโนมัติ Setup สำหรับนักพัฒนาบน Windows
Fish Awesomeness ?
sudo apt -y install fishsudo apt -y upgrade && sudo apt -y autoremove

ติดตั้ง Oh My Fish | OMF

Oh My Fish เหมือน Package Manager สำหรับ Fish ให้ติดตั้ง Packages และ Themes

curl -L https://get.oh-my.fish | fish

ติดตั้ง OMF Theme

omf install clearance

จุดเริ่มต้นของการเริ่มต้น

Ok นี่คือ Basic Setup สำหรับ WSL คุณน่าจะอยากตั้ง Git ตอนนี้ ผมใช้ SSH แทน HTTPS บน WSL มาพักใหญ่

หมายเหตุ: ตอนเขียน WSL Git Integration กับ VSCode ไม่ทำงาน ผมเพิ่ม Git Install บน Windows Machine คุณสามารถข้ามไป ทำ Git ผ่าน Terminal ทั้งหมด แต่ผมชอบ VSCode Git Integration จริงๆ

ตั้ง SSH บนเครื่อง ดูที่ SSH Setup นี้ สะดวก ผมเลือก SSH แทน HTTPS เพราะมีปัญหา Git Credential Manager และ Keyring Manager สุดท้าย สร้าง SSH Key และ Authenticate กับ GitHub เร็วกว่า Guide ที่ลิงก์เดินทางคุณผ่าน

ย้าย Dotfiles

ถ้าคุณ Backup Dotfiles ทั้งหมดใน GitHub Repo ตอนนี้เวลาดีที่จะเพิ่มเข้า WSL Folder ครั้งก่อน ผมตั้ง Permission ด้วยมือหลัง Move ไฟล์แต่ละไฟล์ แต่ค้นพบ rsync ย้ายไฟล์ทั้งหมด

rsync -avzh /mnt/c/Users/dotfiles/ ~/

จะ Copy เนื้อหา dotfiles Folder ไป ~/ (Home) Directory ใน WSL เช็คได้ด้วย:

ls -la ~/
ปรับปรุงการติดตั้ง WSL: อัตโนมัติ Setup สำหรับนักพัฒนาบน Windows

ผม Copy .gitconfig, .gitignore และ .npmrc Dotfiles รูปที่นี่ เห็นว่า Permissions ไม่ Consistent กับ .bashrc File

เปลี่ยน File Permissions ด้วย chmod และดู Attributes ไฟล์คล้ายกันด้วย stat:

stat -c "%a %n" ~/.*

จะ List ทุกอย่างขึ้นต้นด้วย . นี่คือของผม:

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

ตอนนี้ไฟล์ของผมเป็นแบบนี้ ?

ปรับปรุงการติดตั้ง WSL: อัตโนมัติ Setup สำหรับนักพัฒนาบน Windows

Ok ตอนนี้ Up and Running กับ Ubuntu Updated, Node และ Fish Terminal ยังมี Global NPM Packages ที่ต้องติดตั้งสำหรับ Development

Good Luck!

ขอบคุณที่อ่าน

ถ้าคิดว่าน่าสนใจ ให้ Clap หรือ Subscribe อัปเดตอนหน้า หรือ Tweet ความคิดเห็น

ถ้ามีอะไรพลาด หรือมีวิธีดีกว่า บอกผมได้

ติดต่อ Twitter หรือ Ask Me Anything บน GitHub

อ่านบทความแบบนี้เพิ่มได้ที่ Blog ของผม