- ด้วย bootc และคอนเทนเนอร์ที่บูตได้ การเปลี่ยนธีมจึงทำได้อย่างปลอดภัยและจัดการได้มากขึ้น
- สามารถ กำหนด
/usrเป็นคอนเทนเนอร์และย้อนกลับได้ จึงทดลองระบบและย้อนคืนได้ง่าย - คำสั่ง
ostree admin unlockทำให้ ปรับแต่งชั่วคราว ได้โดยไม่ต้องรีบูต - โปรเจ็กต์อย่าง Blue95 สะท้อนถึง ยุคที่เส้นแบ่งระหว่างดิสโทรกับคอนเทนเนอร์เลือนรางลง
- คอนเทนเนอร์ที่บูตได้ช่วยให้ การแสดงออกเชิงสร้างสรรค์ส่วนบุคคล เป็นจริงได้
ความสนุกของการปรับแต่งธีม Linux
- ตลอดหลายสิบปีที่ผ่านมา ผู้เขียนสนใจเดสก์ท็อปเอนวายรอนเมนต์และการตั้งค่าธีมหลากหลายรูปแบบ
- ติดตั้ง Xfce, LXQt, Sway และปรับแต่งแผงควบคุม ตัวเรียกใช้งาน เสียง ฟอนต์ ธีม ฯลฯ
- ในช่วงแรกใช้เชลล์สคริปต์ ก่อนจะพัฒนาต่อเป็น Ansible playbook
- รวมถึงการเปลี่ยนแปลงระดับทั้งระบบที่ต้องแก้ไขไดเรกทอรี
/usr
- แต่เมื่อเวลาผ่านไป ก็ต้องเจอกับปัญหาอย่างแผงควบคุมพังหรือหายไปบ่อย ตัวเรียกใช้งานไม่ทำงาน จนสุดท้ายเลือก กลับไปใช้การตั้งค่าเริ่มต้น
- เดสก์ท็อปเอนวายรอนเมนต์สมัยใหม่อย่าง GNOME และ KDE ก็ออกแบบมาได้ดีมากอยู่แล้ว จึงน่าพอใจแม้ในสภาพเริ่มต้น
- ถึงอย่างนั้น ความอยากปรับแต่งก็ไม่เคยหายไป และในช่วงนั้นเองจึงได้รู้จักแนวคิด
bootc
Bootc คือสนามเด็กเล่นของคนทำธีม
- bootc คือ ระบบคอนเทนเนอร์ที่บูตได้ ที่ Red Hat พัฒนา
- ช่วยให้ กำหนดและแจกจ่ายระบบปฏิบัติการ ในรูปแบบคอนเทนเนอร์ได้
FROM quay.io/fedora/fedora-bootc:42 RUN dnf install -y my-custom-theme my-custom-fonts my-custom-panel - สามารถบิลด์อิมเมจและสลับระบบด้วยคำสั่ง
podmanและbootc:sudo podman build -f Containerfile -t my-fedora sudo bootc switch --transport containers-storage localhost/my-fedora:latest /usrเป็นแบบอ่านอย่างเดียว และ สามารถย้อนกลับคอนเทนเนอร์ไปยังสถานะก่อนหน้าได้ง่าย- เป็นแนวทางที่เหมาะอย่างยิ่งสำหรับการทดลองไอเดียธีมใหม่ ๆ
- หากล้มเหลวหรือไม่ชอบ ก็ กู้กลับไปยังสถานะก่อนหน้าได้ง่าย ๆ
Development Mode (ostree admin unlock)
- เป็นโหมดที่ให้แก้ไข
/usrชั่วคราวได้โดยไม่ต้องรีบูต - ถ้าสำเร็จก็นำไปใส่ใน Containerfile ได้ แต่ถ้าล้มเหลวก็เพียงรีบูตก็ลบการเปลี่ยนแปลงทิ้งได้
- ข้อดีคือแทบไม่เกิด เศษตกค้าง สะสมแบบที่มักเจอในสภาพแวดล้อมลินุกซ์ทั่วไป
เปรียบเทียบกับวิธีทางเลือก
- Ansible หรือเชลล์สคริปต์: มีข้อจำกัดด้านการทำซ้ำและการกู้คืน
systemd-sysext: ใช้อิมเมจโอเวอร์เลย์ของ/usrได้ แต่ระบบนิเวศยังไม่สุกงอม- Nix: ต้นทุนการเรียนรู้สูงมาก
สรุปแล้ว bootc คือแนวทางที่ทรงพลังที่สุดในแง่ความปลอดภัย ความยืดหยุ่น และการรองรับจากเครื่องมือ
แม้จะมีการเปลี่ยนแปลงผิดพลาด ก็ย้อนกลับได้ง่าย จึงไม่ต้องกังวลว่าจะทำ /usr พัง
อะไรคือ "ดิสโทร"?
- Blue95 คืออิมเมจ OCI ที่ปรับแต่งบนพื้นฐาน Fedora Xfce
- หลังถูกแนะนำบน Hacker News ก็เกิดคำถามว่า "มันเป็นแค่ธีมธรรมดา จำเป็นต้องเป็นดิสโทรด้วยหรือ?"
นิยามของดิสโทรเริ่มพร่าเลือน
- แต่เดิม การสร้างดิสโทรเป็นงานที่ซับซ้อนและใช้เวลามาก
- ตอนนี้แค่มี Containerfile + ไปป์ไลน์ CI/CD ก็สร้างผลลัพธ์คล้ายกันได้ง่ายแล้ว
- Blue95 ถูกบิลด์อัตโนมัติด้วย GitHub Actions และเผยแพร่ไปยัง OCI registry
- เกณฑ์ที่จะมองคอนเทนเนอร์พื้นฐาน Fedora ธรรมดา ๆ ว่าเป็น ดิสโทร นั้นเริ่มคลุมเครือ
เทียบกับกรณีเดิม ๆ
- โปรเจ็กต์ที่ใช้ bootc อย่าง Bluefin, Bazzite ก็มักถูกมองว่าเป็นดิสโทรเช่นกัน
- ประสบการณ์ใช้งานจริงแตกต่างจาก Fedora แบบเดิมอย่างชัดเจน
- ทำให้อธิบายความหมายของดิสโทรด้วยนิยามเดิมได้ยากขึ้น
- อาจเหลือเพียงเกณฑ์เชิงคุณภาพแบบ "เห็นปุ๊บก็รู้เลย" เท่านั้น
บทสรุป
- การสร้าง "ดิสโทร" เพียงเพื่อธีมอย่างเดียวอาจ ดูไม่จำเป็น
- แต่การใช้คอนเทนเนอร์ที่บูตได้เพื่อ กำหนดดีไซน์และชุดแอปให้สอดคล้องกัน
- และมีอิสระที่จะสร้างและใช้งานมันด้วยตัวเอง มอบทั้ง ความสุขและความภูมิใจอย่างมาก
ระบบปฏิบัติการที่ใช้เขียนบทความนี้อยู่ตอนนี้คือ ระบบที่บูตมาจากคอนเทนเนอร์ที่ผมสร้างเอง
มันคือผลลัพธ์ของการนำงานสร้างสรรค์ของผมไปต่อยอดบนผลงานของนักพัฒนาจำนวนนับไม่ถ้วน
และนั่นคือสิ่งที่มอบ ความสุขอย่างมาก ให้กับผม
2 ความคิดเห็น
ผมยังไม่ค่อยเข้าใจ bootable container เท่าไหร่นัก
ความคิดเห็นจาก Hacker News
คอนเทนเนอร์ทั่วไปมีประโยชน์มากสำหรับการทดสอบ dotfiles
ชอบแนวคิดของ Linux แบบ immutable และคอนเทนเนอร์ที่บูตได้
สงสัยว่าทำไมคนถึงไม่ได้หลงใหลเรื่องธีมกันมากกว่านี้
ก่อนหน้านี้ไม่รู้เรื่องคอนเทนเนอร์ที่บูตได้เลย
ทำให้นึกถึงสมัยที่เคยเล่นกับ Enlightenment
รู้สึกสนใจคอนเทนเนอร์ที่บูตได้
โปรเจกต์ bootc เป็นหนึ่งในสิ่งที่น่าตื่นเต้นที่สุดบน Linux ตอนนี้
ภาพขนาดย่อสื่อถึงสภาพของฉันได้ทั้งหมด
เคยคาดหวังว่า OS ยุคใหม่จะปรับแต่งธีมได้ง่ายแบบไร้ขีดจำกัด แต่กลับไม่เป็นเช่นนั้น