ตัวจัดการแพ็กเกจแบบฟังก์ชันนัล Guix กำลังถูกลบออกจากรีลีสเสถียรและทดสอบของ Debian หลังจากพบช่องโหว่ด้านความปลอดภัยและปัญหาการบำรุงรักษาที่เพิ่มมากขึ้น นี่เป็นกรณีที่หายากของแพ็กเกจที่ถูกดึงออกจากรีลีสเสถียรของ Debian ซึ่งเน้นย้ำถึงความท้าทายในการบำรุงรักษาซอฟต์แวร์แบบ rolling-release ภายในโมเดลการแจกจ่ายแบบดั้งเดิม
Guix เสนอแนวทางที่แตกต่างในการจัดการแพ็กเกจเมื่อเปรียบเทียบกับระบบ APT ของ Debian โดยมีการอัปเกรดแบบทรานแซ็กชัน การย้อนกลับ และอนุญาตให้ผู้ใช้ที่ไม่มีสิทธิพิเศษจัดการแพ็กเกจได้ ซึ่งแตกต่างจากตัวจัดการแพ็กเกจ Nix ที่คล้ายกัน Guix ใช้การใช้งาน Guile ของ Scheme สำหรับการกำหนดแพ็กเกจ
ช่องโหว่ด้านความปลอดภัยก่อให้เกิดวิกฤต
กระบวนการลบออกเริ่มต้นเมื่อโครงการ Guix เปิดเผยช่องโหว่ด้านความปลอดภัยหลายรายการเมื่อวันที่ 24 มิถุนายน 2025 ช่องโหว่สำคัญสองรายการ CVE-2025-46415 และ CVE-2025-46416 อาจทำให้ผู้ใช้ในเครื่องสามารถได้รับสิทธิพิเศษที่สูงขึ้นและจัดการผลลัพธ์การสร้างได้ โครงการ Guix ได้ให้คำแนะนำในการบรรเทาแต่ไม่ได้ปล่อยเวอร์ชันเสถียรใหม่ แต่อาศัยโมเดล rolling-release ของตน
สิ่งนี้สร้างปัญหาสำคัญสำหรับผู้บำรุงรักษาแพ็กเกจ Debian คือ Vagrant Cascadian การแก้ไขความปลอดภัยถูกผสมรวมกับการเปลี่ยนแปลงอื่นๆ จากต้นทางจำนวนมาก ทำให้ยากมากในการ backport เฉพาะแพตช์ความปลอดภัยที่จำเป็นโดยไม่แนะนำฟีเจอร์ใหม่ที่สำคัญและความไม่เสถียรที่อาจเกิดขึ้น
ช่องโหว่ด้านความปลอดภัย:
- CVE-2025-46415: การยกระดับสิทธิ์ในระบบท้องถิ่นสำหรับผู้ใช้ build
- CVE-2025-46416: การจัดการผลลัพธ์ build และการยกระดับสิทธิ์ daemon
- ส่งผลกระทบต่อ: ตัวจัดการแพ็กเกจ Guix , Nix และ Lix
- จำเป็นต้องใช้แพตช์: ประมาณ 50 commits ระหว่างเวอร์ชัน 1.4.0 และการแก้ไข
ภาระการบำรุงรักษากลายเป็นสิ่งที่ไม่ยั่งยืน
การอภิปรายของชุมชนเผยให้เห็นความท้าทายที่ลึกซึ้งยิ่งขึ้นที่ผู้บำรุงรักษาการแจกจ่ายต้องเผชิญ Denis Carikli ที่พยายามช่วยเหลือในการ backporting ได้ใช้แพตช์ประมาณ 50 รายการที่เกี่ยวข้องกับ guix-daemon ระหว่างเวอร์ชัน 1.4.0 และการแก้ไขความปลอดภัย ความพยายามอย่างมากนี้เน้นย้ำถึงความไม่เข้ากันระหว่างโมเดลการพัฒนาแบบ rolling-release ของ Guix และแนวทางสาขาเสถียรของ Debian
Cascadian ได้กล่าวถึงความท้าทายในการบำรุงรักษาเพิ่มเติม รวมถึงการจัดการการพึ่งพิง Guile และการจัดการกับความชอบของ Guix สำหรับเวอร์ชัน GCC ที่เก่ากว่าในขณะที่ Debian ส่งเวอร์ชันคอมไพเลอร์ที่ใหม่กว่า สมาชิกชุมชนได้ระบุปัญหาเฉพาะกับความเข้ากันได้ของ GCC 15 ที่การรวมเฮดเดอร์แบบโดยนัยถูกลบออก ทำให้การสร้างที่เคยทำงานได้ก่อนหน้านี้เสียหาย
ทุกครั้งที่คุณรันซอฟต์แวร์ผ่านกระบวนการนอกเหนือจากเวิร์กโฟลว์การพัฒนาหลัก คุณจะพบสิ่งแปลกใหม่ที่คุ้มค่าแก้ไข
การเปรียบเทียบการรองรับสถาปัตยกรรม:
- แพ็กเกจ Debian Guix : x86-64, Arm64, PowerPC, RISC-V, 32-bit Arm, 32-bit x86
- ไบนารี Guix ต้นทาง: x86-64, Arm64, PowerPC, 32-bit Arm, 32-bit x86 (ไม่มี RISC-V)
ผลกระทบต่อผู้ใช้ที่จำกัด
ตามสถิติการประกวดความนิยมของ Debian ระบบน้อยกว่า 230 ระบบในปัจจุบันมี Guix ติดตั้งอยู่ ซึ่งคิดเป็นน้อยกว่า 0.09% ของระบบที่เข้าร่วม ในขณะที่สมาชิกชุมชนบางคนตั้งคำถามเกี่ยวกับความแม่นยำของสถิติเหล่านี้เนื่องจากผู้ใช้ที่ใส่ใจเรื่องความเป็นส่วนตัวปิดการรายงาน ตัวเลขที่ต่ำแสดงให้เห็นว่าการลบออกจะไม่ส่งผลกระทบอย่างมีนัยสำคัญต่อผู้ใช้ Debian ส่วนใหญ่
การลบออกส่งผลต่อรีลีส Debian หลายรายการรวมถึงเวอร์ชันเสถียรปัจจุบัน bookworm และเวอร์ชันทดสอบ trixie ผู้ใช้ที่มี Guix ติดตั้งอยู่แล้วจะติดอยู่กับเวอร์ชันที่มีช่องโหว่เว้นแต่จะอัปเดตด้วยตนเองโดยใช้ไบนารีจากต้นทาง
สстатิสติการใช้งาน:
- Debian popcon รายงาน: <230 การติดตั้ง Guix
- เปอร์เซ็นต์ของระบบ Debian : <0.09%
- เปรียบเทียบ: firefox-esr มีการติดตั้งประมาณ ~118,000 ครั้ง (44.5%)
- หมายเหตุ: สถิติอาจไม่แสดงการใช้งานจริงทั้งหมดเนื่องจากการตั้งค่าความเป็นส่วนตัว
แนวโน้มในอนาคต
โครงการ Guix ได้นำแผนสำหรับการปล่อยรายปีอย่างสม่ำเสมอเริ่มต้นในปี 2025 แต่สิ่งนี้จะไม่แก้ปัญหาพื้นฐาน การปล่อยเหล่านี้จะยังคงเป็นแบบสะสมมากกว่าการให้สาขาเสถียรกับการอัปเดตเฉพาะความปลอดภัยที่การแจกจ่ายเช่น Debian ต้องการ
ผู้ใช้ยังคงสามารถติดตั้ง Guix โดยใช้ไบนารีที่ให้บริการโดยตรงจากโครงการ Guix แม้ว่าสิ่งนี้อาจทำให้ผู้ใช้สถาปัตยกรรมบางรายการไม่ได้รับการสนับสนุน โครงการ Guix ไม่ได้ให้บริการไบนารี RISC-V ในขณะที่แพ็กเกจของ Debian รองรับสถาปัตยกรรมที่แตกต่างกันหกแบบ
สถานการณ์นี้แสดงให้เห็นถึงความตึงเครียดที่ดำเนินต่อไประหว่างโมเดลการพัฒนาแบบ rolling-release สมัยใหม่และแนวทางการแพ็กเกจการแจกจ่ายแบบดั้งเดิม ในขณะที่ทั้งสองโมเดลมีข้อดีของตน การหาจุดกึ่งกลางสำหรับซอฟต์แวร์ที่ซับซ้อนเช่นตัวจัดการแพ็กเกจยังคงเป็นเรื่องท้าทาย
อ้างอิง: Removing Guix from Debian