Automate การเซ็ตอัพเครื่องแมคด้วย Shell script และ Dotfiles

Manassarn Manoonchai
Eventpop
Published in
1 min readSep 16, 2019

ไม่มีที่ใดสุขใจเท่า $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 อื่นๆ แถมยังแชร์ให้เพื่อนๆ ใช้ได้ง่ายกว่าด้วย 👍

--

--