Lnk - ตัวจัดการ dotfiles แบบไบนารีเดี่ยวที่ใช้ Git
(github.com/yarlson)- เครื่องมือโอเพนซอร์สที่ช่วยให้ จัดการ dotfiles ด้วย Git ได้อย่างเป็นระเบียบ โดยไม่ต้องมีการตั้งค่ายุ่งยากหรือขั้นตอนซับซ้อน
lnk add ~/.vimrc ~/.bashrcลงทะเบียนและจัดการไฟล์ได้อย่างง่ายดายlnk add --host work ~/.ssh/configจัดการไฟล์แยกตามอุปกรณ์ได้เป็นรายเครื่อง
- บูตสแตรปอัตโนมัติ: เพียงเพิ่ม
bootstrap.shในรีโพซิทอรี dotfiles ระบบจะรันการตั้งค่าสภาพแวดล้อมอัตโนมัติ ทำให้เตรียมสภาพแวดล้อมสำหรับพัฒนาได้ง่ายขึ้น - ทำงานเวิร์กโฟลว์ประจำวันแบบอัตโนมัติ: ทุกงาน เช่น การเพิ่ม·ลบไฟล์, ตรวจสอบสถานะ, ซิงก์(push/pull), ดูรายการไฟล์แยกตามโฮสต์ สามารถสั่งผ่านคำสั่งได้ทั้งหมด
- ไฟล์ทั้งหมดถูกจัดการเป็น รีโพซิทอรี Git ภายใต้ไดเรกทอรี
~/.config/lnkและสร้าง symbolic link ไว้ที่ตำแหน่งเดิม ทำให้ใช้งานและซิงก์ได้สะดวก - รองรับหลายเครื่อง: สามารถแยกจัดการค่าตั้งค่าเฉพาะของแต่ละอุปกรณ์และค่าตั้งค่ากลางร่วมกันได้อย่างยืดหยุ่น
- ไบนารีเดี่ยว (8MB, ไม่มี dependency) และ การสร้าง symbolic link แบบ relative path ทำให้มีขนาดเล็ก พกพาง่าย และย้ายไปใช้งานได้สะดวก
เปรียบเทียบกับเครื่องมือจัดการ dotfiles อื่น ๆ
| Tool | ความซับซ้อน | เหตุผลที่เลือกใช้ |
|---|---|---|
| lnk | ต่ำ | เรียบง่าย, ใช้ Git, แยกตามโฮสต์, บูตสแตรปอัตโนมัติ |
| chezmoi | สูง | ฟีเจอร์หลากหลาย เช่น เทมเพลต·การเข้ารหัส แต่ซับซ้อน |
| yadm | ปานกลาง | เหมาะกับ Git power user/มีฟีเจอร์เข้ารหัส |
| dotbot | ต่ำ | ใช้ YAML, เรียบง่ายแต่ฟังก์ชันน้อย |
| stow | ต่ำ | Perl, เน้น symbolic link อย่างเดียว |
1 ความคิดเห็น
ผมยังไม่ค่อยเข้าใจความแตกต่างจาก dvc เท่าไรนะ