Debian กลับมารองรับระบบ init หลายระบบ

Sam Hartman หัวหน้าโครงการ Debian พยายาม เพื่อทำความเข้าใจความขัดแย้งที่เกี่ยวข้องกับการส่งมอบแพ็คเกจ eogind ซึ่งเป็นส่วนหนึ่งของการแจกจ่าย ในเดือนกรกฎาคม ทีมงานที่รับผิดชอบในการเตรียมการเผยแพร่ ถูกบล็อก การรวม elogind ไว้ในสาขาการทดสอบ เนื่องจากแพ็คเกจนี้ขัดแย้งกับ libsystemd

จำได้ว่า เข้าสู่ระบบ จัดเตรียมอินเทอร์เฟซที่จำเป็นสำหรับการเรียกใช้ GNOME โดยไม่ต้องติดตั้ง systemd โปรเจ็กต์นี้ก่อตั้งขึ้นเพื่อเป็นทางแยกของ systemd-logind ซึ่งวางอยู่ในแพ็คเกจแยกต่างหาก และเป็นอิสระจากการเชื่อมโยงกับส่วนประกอบ systemd เหนือสิ่งอื่นใด elogind จัดเตรียมไลบรารี libelogind ในเวอร์ชันของตัวเอง ซึ่งรับหน้าที่จำนวนหนึ่งที่มีให้ใน libsystemd และแทนที่ไลบรารีนี้ระหว่างการติดตั้ง

สาเหตุของการบล็อกคือข้อขัดแย้งกับแพ็คเกจ systemd และอันตรายจากการแทนที่ libsystemd ด้วย libelogend ทางเลือก ซึ่งเข้ากันไม่ได้กับไลบรารีต้นทางในระดับ ABI โดยสิ้นเชิง
ป้ายกำกับแพ็กเกจ elogind ว่าขัดแย้งกับไลบรารี systemd แต่โดยธรรมชาติแล้วได้รับการออกแบบมาให้ทำงานโดยไม่มี systemd เท่านั้น และการขัดแย้งกับ systemd นั้นมีประโยชน์จริง ๆ เพราะมันป้องกันไม่ให้ elogind ติดตั้งโดยไม่ได้ตั้งใจ ในทางกลับกัน ในรูปแบบปัจจุบัน พยายามผ่าน APT เพื่ออัปเดตการกำหนดค่าจาก systemd เป็นเวอร์ชันด้วย sysvinit และ elogind ผลลัพธ์ ระบบเสียหาย โดยที่ APT ไม่ทำงาน แต่ถึงแม้ว่าข้อบกพร่องนี้จะหมดไป การเปลี่ยนจาก systemd เป็น elogind ยังคงเป็นไปไม่ได้หากไม่ได้ลบสภาพแวดล้อมผู้ใช้ที่ติดตั้งไว้แล้ว

นักพัฒนา elogind คือ เสนอ ปรับ elogind ให้ทำงานบน libpam-systemd มาตรฐาน โดยไม่ต้องใช้เลเยอร์ libpam-elogind ของตัวเอง การเปลี่ยนผ่านของ elogind ไปเป็น libpam-systemd ถูกขัดขวางเนื่องจากขาดการสนับสนุนสำหรับแนวคิดของสไลซ์ แต่นักพัฒนาของ elogind ไม่ต้องการที่จะบรรลุการปฏิบัติตามข้อกำหนดอย่างสมบูรณ์กับ API และทำซ้ำความสามารถทั้งหมดของ systemd อย่างแน่นอน เนื่องจาก elogind ให้เพียงเล็กน้อยเท่านั้น ฟังก์ชั่นสำหรับการจัดระเบียบการเข้าสู่ระบบของผู้ใช้และไม่ได้มุ่งหวังที่จะจำลองระบบย่อย systemd ทั้งหมด

การแก้ไขปัญหาทางเทคนิคที่อธิบายไว้ควรได้รับการแก้ไขในระดับปฏิสัมพันธ์ระหว่างทีมปล่อยและผู้ดูแล elogind และ systemd แต่หัวหน้าโครงการถูกบังคับให้เข้าไปแทรกแซงเนื่องจากทีมไม่สามารถตกลงกันได้ การทำงานร่วมกันพัฒนาไปสู่การเผชิญหน้าและการแก้ปัญหา ปัญหาถึงทางตันซึ่งแต่ละฝ่ายมีความถูกต้องในแบบของตัวเอง ตามที่ Sam Hartman กล่าวไว้ สถานการณ์กำลังเข้าใกล้รัฐที่ต้องการการลงคะแนนเสียงทั่วไป (GR, ความละเอียดทั่วไป) ซึ่งชุมชนจะตัดสินใจเกี่ยวกับระบบทางเลือกสำหรับการเริ่มต้นและการสนับสนุน sysvinit ด้วย elogind

หากสมาชิกโครงการลงคะแนนให้กระจายระบบ init ผู้ดูแลทั้งหมดจะมีส่วนร่วมในการทำงานร่วมกันเพื่อแก้ไขปัญหานี้ หรือนักพัฒนาเฉพาะเจาะจงจะได้รับมอบหมายให้ทำงานในปัญหานี้ และผู้ดูแลจะไม่สามารถเพิกเฉยต่อระบบ init อื่น นิ่งเงียบ หรือ ทำให้กระบวนการล่าช้า

ขณะนี้อยู่ในคลังแล้ว สะสม แพ็คเกจ 1033 ที่ให้บริการหน่วยบริการสำหรับ systemd แต่ไม่รวมสคริปต์ init.d เพื่อแก้ไขปัญหานี้ ที่นำเสนอ จัดหาไฟล์บริการตามค่าเริ่มต้น แต่เตรียมตัวจัดการที่จะแยกวิเคราะห์คำสั่งจากไฟล์เหล่านี้โดยอัตโนมัติ และสร้างสคริปต์ init.d ตามไฟล์เหล่านั้น

หากชุมชนตัดสินใจว่า Debian มีการรองรับเพียงพอสำหรับระบบ init เดียว เราก็ไม่ต้องกังวลกับ sysvinit และ elogind อีกต่อไป และมุ่งเน้นไปที่ไฟล์หน่วยและ systemd เท่านั้น การตัดสินใจนี้จะส่งผลเสียต่อพอร์ตที่ไม่ได้ใช้เคอร์เนล Linux (Debian GNU / Hurd, Debian GNU / NetBSD и Debian GNU / kFreeBSD) แต่ยังไม่มีพอร์ตดังกล่าวในไฟล์เก็บถาวรหลัก และไม่มีพอร์ตดังกล่าว ได้รับการสนับสนุนอย่างเป็นทางการ.

การเชื่อมโยงกับ systemd จะทำให้การเปลี่ยนทิศทางของการกระจายในอนาคตทำได้ยากยิ่งขึ้น และจะจำกัดการทดลองเพิ่มเติมในด้านการเริ่มต้นและการจัดการบริการ การรักษา elogind ในรูปแบบการทำงานนั้นง่ายกว่าการลบออกแล้วลองเพิ่มอีกครั้ง ตัวเลือกการตัดสินใจแต่ละตัวเลือกมีข้อดีและข้อเสีย ดังนั้นจึงต้องมีการอภิปรายอย่างครบถ้วนเกี่ยวกับข้อดีและข้อเสียทั้งหมดก่อนที่จะลงคะแนน

ที่มา: opennet.ru

เพิ่มความคิดเห็น