11 คะแนน โดย GN⁺ 2025-04-23 | 2 ความคิดเห็น | แชร์ทาง WhatsApp
  • ด้วย 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 ความคิดเห็น

 
zihado 2025-04-23

ผมยังไม่ค่อยเข้าใจ bootable container เท่าไหร่นัก

 
GN⁺ 2025-04-23
ความคิดเห็นจาก Hacker News
  • คอนเทนเนอร์ทั่วไปมีประโยชน์มากสำหรับการทดสอบ dotfiles

    • เมื่อไม่กี่ปีก่อน ได้เพิ่มสคริปต์ติดตั้งเข้าไปที่ https://github.com/nickjj/dotfiles เพื่อให้ตั้งค่าระบบได้อย่างรวดเร็ว
    • ทดสอบโดยใช้อิมเมจ Debian และ Ubuntu อย่างเป็นทางการ
    • ไม่นานมานี้ได้รีแฟกเตอร์ให้รองรับ Arch Linux
    • สามารถรันทดสอบทั้งหมดเสร็จได้ในเวลาประมาณ 5 นาที
    • คอนเทนเนอร์เริ่มต้นได้ใน 1 วินาที และที่เหลือคือเวลาที่สคริปต์ทำงาน
    • ทำให้ทดสอบได้โดยไม่ต้องแก้ไขระบบ
    • Docker ทำให้หลายสิ่งดี ๆ เกิดขึ้นได้ตลอด 10 ปีที่ผ่านมา
  • ชอบแนวคิดของ Linux แบบ immutable และคอนเทนเนอร์ที่บูตได้

    • โปรเจกต์ถัดไปน่าจะเป็นการย้ายไปใช้ bazzite
    • แต่พอดู Containerfile แล้วก็มีความกังวลเรื่องความเปราะบางของซัพพลายเชน
    • มีการใช้คลัง copr ที่แตกต่างกันถึง 20 แห่ง และไม่ได้ตรึงเวอร์ชันไว้
    • ถ้าใช้ Debian จะมีความเชื่อมั่นต่อแพ็กเกจมากกว่า
    • การรวมความเสี่ยงของซัพพลายเชนไว้ในไฟล์เดียวอาจเป็นเรื่องอันตราย
    • สงสัยว่าคนอื่น ๆ กังวลแบบเดียวกันหรือไม่
  • สงสัยว่าทำไมคนถึงไม่ได้หลงใหลเรื่องธีมกันมากกว่านี้

    • ชอบ Chicago95 และธีม KDE ของ Garuda
    • มีเว็บไซต์ที่ให้ดาวน์โหลดธีมของ DE หลากหลายแบบ แต่ส่วนใหญ่ยังดูไม่ค่อยเสถียรนัก
  • ก่อนหน้านี้ไม่รู้เรื่องคอนเทนเนอร์ที่บูตได้เลย

    • Blue95 ทำให้เข้าใจมากขึ้นเมื่อมองในบริบทของการใช้ bootc
    • อาจดูตัวอย่างอย่าง NsCDE ได้
  • ทำให้นึกถึงสมัยที่เคยเล่นกับ Enlightenment

    • มันเป็นความพยายามที่จะผลักขีดความสามารถของ X11 ให้สุดทาง
    • น่าแปลกที่มันยังคงมีอยู่จนถึงตอนนี้
  • รู้สึกสนใจคอนเทนเนอร์ที่บูตได้

    • คล้ายกับโมดูล impermanence ของ NixOS
  • โปรเจกต์ bootc เป็นหนึ่งในสิ่งที่น่าตื่นเต้นที่สุดบน Linux ตอนนี้

    • น่าจะดีถ้าโปรเจกต์อย่าง Debian นำมันไปใช้
    • น่าจะได้ประโยชน์มากในด้านความเสถียร
  • ภาพขนาดย่อสื่อถึงสภาพของฉันได้ทั้งหมด

  • เคยคาดหวังว่า OS ยุคใหม่จะปรับแต่งธีมได้ง่ายแบบไร้ขีดจำกัด แต่กลับไม่เป็นเช่นนั้น

    • คิดว่าน่าจะมีทั้งธีมย้อนยุคที่สมบูรณ์แบบและธีมต้นฉบับที่สร้างสรรค์