Automate การเซ็ตอัพเครื่องแมคด้วย Shell script และ Dotfiles
ไม่มีที่ใดสุขใจเท่า
$HOME
ส่วนตัวผมเองชอบลงโปรแกรมต่างๆ ไว้เยอะมาก ซึ่งจะก่อให้เกิดปัญหาเวลาย้าย Mac หรือต้อง Clean Install เพราะต้องมานั่ง Backup หรือจดว่าเราต้องลงอะไรใหม่บ้าง คิดว่าหลายคนคงมีปัญหาคล้ายคลึงกัน เลยจะมาแชร์เรื่องการปรับแต่งต่างๆ แบบที่รันสคริปท์ครั้งเดียวเซ็ตจนเครื่องใหม่กลายเป็นเหมือนเก่าเลยครับ 🤣
ตัวอย่างสิ่งที่ต้องลง
- เครื่องมือทำมาหากิน : VSCode, iTerm2, Dash, Slack, Timing, Alfred, Keyboard Maestro, Karabiner Elements, Docker for Mac
- แอพทั่วไป : Google Chrome, Google Drive, Dropbox, 1Password, Steam 🎮
- สำหรับ Terminal : Git, Zsh, Tmux, Homebrew, Ruby, Nodejs, Dotfiles ต่างๆ
Boilerplate vs DIY
ถ้ายังไม่แม่น Shell / CLI มากผมมักแนะนำให้หา Framework หรือ Clone จากของคนอื่นที่ทำมาแล้ว มีเต็มไปหมด แต่พยายามเลือกอันที่ไม่ซับซ้อน เพราะเดี๋ยวเราต้องมาปรับแต่งตามความต้องการของเราทีหลัง แล้วพอเราเริ่มเชี่ยวชาญก็ Fork ออกมาหรือเริ่มเขียนใหม่แต่แรกเลยก็ยังได้
ตัวที่แนะนำคือ https://github.com/thoughtbot/laptop ถ้าเน้นแค่ลงแอพต่างๆ หรือ https://github.com/holman/dotfiles ถ้าจะเอา Dotfiles ด้วย
Dotfiles?
มันคือไฟล์ที่มีจุดนำหน้า เช่น .bash_profile
.zshrc
.gitignore
เอาไว้เก็บ Configuration ต่างๆ และมักมีขนาดเล็ก ซึ่งเราสามารถ Backup ไปบน Google Drive หรือ Github ก็ได้ แล้วพอลงแมคใหม่ก็ค่อย Restore กลับมาไว้ที่ Home Directory (~/
) อันนี้แนะนำว่า Dev ทุกคนควรมีพกติดตัวไว้ใช้ อุ่นใจค่ะ 💁
สำหรับ Script ที่ผมเขียนเองจะเป็น Ansible เพราะว่าเขียน Script ยังไม่คล่องมาก 😛
ข้อดีของการเอา Dotfiles ไว้บน Git คือเราสามารถดึงไฟล์ลงแมคได้เร็วกว่ารอลง Sync จาก Cloud อื่นๆ แถมยังแชร์ให้เพื่อนๆ ใช้ได้ง่ายกว่าด้วย 👍