การเปิดตัว Debcraft เครื่องมือใหม่ที่ออกแบบมาเพื่อลดความซับซ้อนของการสร้างแพ็กเกจ Debian ได้จุดประกายการถกเถียงอย่างร้อนแรงในชุมชน Linux เกี่ยวกับความซับซ้อนที่เลื่องชื่อของระบบแพ็กเกจของ Debian แม้ว่าเครื่องมือนี้จะสัญญาว่าจะทำงานที่น่าเบื่อให้เป็นแบบอัตโนมัติและลดอุปสรรคสำหรับผู้มีส่วนร่วมใหม่ แต่การตอบสนองของชุมชนเผยให้เห็นความหงุดหงิดที่ลึกซึ้งกับคุณภาพของเอกสารและการเข้าถึงเครื่องมือที่คงอยู่มาหลายปี
คำสั่งหลักของ Debcraft :
debcraft build
- สร้างแพ็กเกจพร้อมดึงซอร์สโค้ดอัตโนมัติdebcraft shell
- แก้ไขข้อบกพร่องการสร้างแพ็กเกจที่ล้มเหลวแบบโต้ตอบdebcraft test
- รัน autopkgtests ได้อย่างง่ายดายdebcraft release
- สร้างและอัปโหลดซอร์สแพ็กเกจdebcraft improve
- แก้ไขปัญหาทั่วไปโดยอัตโนมัติdebcraft update
- อัปเดตเป็นเวอร์ชันล่าสุดจากอัปสตรีม
ความท้าทายด้านเอกสารสร้างอุปสรรคในการเรียนรู้
สมาชิกชุมชนได้เน้นย้ำถึงปัญหาพื้นฐานที่รบกวนการแพ็กเกจ Debian นั่นคือเอกสารที่ล้าสมัยและไม่สอดคล้องกันซึ่งทำให้การเรียนรู้ยากโดยไม่จำเป็น ปัญหานี้ขยายไปเกินกว่าความขัดแย้งของเวอร์ชันธรรมดา โดยผู้มีส่วนร่วมสังเกตว่า Debian Wiki ประกอบด้วยชั้นของข้อมูลทางประวัติศาสตร์ที่อาจทำให้ผู้มาใหม่ที่พยายามแก้ปัญหาปัจจุบันสับสน
สมาชิกชุมชนคนหนึ่งเสนอแนวทางแก้ไขที่สร้างสรรค์ - การสร้าง fork เอกสารเฉพาะเวอร์ชันที่จะแยกบริบททางประวัติศาสตร์ออกจากแนวปฏิบัติที่ดีที่สุดในปัจจุบัน วิธีการนี้สามารถช่วยรักษาข้อมูลดั้งเดิมที่มีค่าไว้ในขณะที่ป้องกันไม่ให้มันครอบงำผู้ใช้ที่เพียงแค่ต้องการแพ็กเกจซอฟต์แวร์สำหรับ Debian รุ่นใหม่
แนวทางทางเลือกแสดงเส้นทางที่ง่ายกว่า
การถกเถียงเผยให้เห็นว่านักพัฒนาหลายคนพบวิธีแก้ไขชั่วคราวเพื่อหลีกเลี่ยงระบบนิเวศการแพ็กเกจที่ซับซ้อนของ Debian โดยสิ้นเชิง บางคนหันไปใช้เครื่องมืออย่าง FPM (Effing Package Management) หรือแม้แต่วิธีการแบบแมนนวลโดยใช้คำสั่งพื้นฐานอย่าง dpkg-deb
สำหรับสถานการณ์การปรับใช้ไฟล์ง่าย ๆ
การเปรียบเทียบกับลินุกซ์ดิสทริบิวชันอื่น ๆ เน้นให้เห็นความแตกต่างอย่างสิ้นเชิงในความซับซ้อนของการแพ็กเกจ แพ็กเกจ Alpine Linux มักต้องการเพียง 20 บรรทัดของ shell script ที่โปร่งใส ในขณะที่ Arch Linux รักษาแนวทางที่เรียบง่ายในทำนองเดียวกัน ตัวอย่างเหล่านี้แสดงให้เห็นว่าการจัดการแพ็กเกจไม่จำเป็นต้องมีการแยกชั้นหลายระดับที่เป็นลักษณะเฉพาะของระบบ Debian
ฉันไม่รู้ด้วยซ้ำว่าคู่มือนี้มีอยู่ เพราะเสียงรบกวนทั้งหมดที่มีอยู่ในพื้นที่เดียวกัน ฉันสามารถสร้างแพ็กเกจ Debian ได้ (และแม้แต่โฮสต์ repository ด้วยตัวเอง) แม้จะมีเอกสารที่มีอยู่ ไม่ใช่เพราะมัน
การเปรียบเทียบความซับซ้อนของแพ็กเกจ:
- Alpine Linux: ประมาณ 20 บรรทัดของ shell script สำหรับแพ็กเกจ btop
- Arch Linux: แนวทางที่ใช้ shell แบบง่ายและโปร่งใส
- Void Linux: การกำหนดค่าแบบ declarative ที่สั้น
- Debian: ไฟล์ declarative หลายไฟล์ในไดเรกทอรีย่อย debian/ พร้อมชั้นนามธรรมที่ซับซ้อน
การแพร่กระจายของเครื่องมือสร้างปัญหาใหม่
การถกเถียงของชุมชนยังสัมผัสถึงรูปแบบที่กว้างขึ้นในระบบนิเวศซอฟต์แวร์ที่ระบบซับซ้อนก่อให้เกิดโซลูชันที่แข่งขันกันหลายตัว โดยแต่ละตัวอ้างว่าแก้ปัญหาเดิม สิ่งนี้สร้างสิ่งที่บางคนเรียกว่า CADT (Cascade of Attention-Deficit Teenagers) - วงจรที่เครื่องมือใหม่กลายเป็นมาตรฐานชั่วคราวก่อนที่จะถูกแทนที่ด้วยโซลูชันที่ใหม่กว่า
ผู้มีส่วนร่วมหลายคนสังเกตว่าแม้ว่า Debcraft จะจัดการกับจุดเจ็บปวดที่แท้จริง แต่มันแสดงถึงชั้นของเครื่องมืออีกชั้นหนึ่งที่นักพัฒนาในอนาคตจะต้องเรียนรู้ คำถามพื้นฐานยังคงอยู่ว่าโครงการ Debian ควรมุ่งเน้นไปที่การแก้ไขเครื่องมือหลักแทนที่จะพึ่งพาโซลูชันจากบุคคลที่สามเพื่อปิดบังปัญหาระบบ
โซลูชันแบบ Container ได้รับความนิยม
การใช้ container ของ Debcraft เพื่อขจัดข้อกำหนดในการพัฒนาบนระบบ Debian ได้รับการตอบรับที่ดีจากสมาชิกชุมชนหลายคน แนวทางนี้ช่วยให้นักพัฒนาที่ใช้ลินุกซ์ดิสทริบิวชันอื่น ๆ macOS หรือ Windows กับ WSL สามารถมีส่วนร่วมในการแพ็กเกจ Debian โดยไม่ต้องเปลี่ยนสภาพแวดล้อมการพัฒนาหลักของพวกเขา
แนวทางแบบ container ยังสัญญาว่าจะให้การ build ที่ทำซ้ำได้มากขึ้นและการแยกที่ดีกว่า โดยจัดการกับความกังวลที่มีมายาวนานเกี่ยวกับการจัดการ dependency และความสอดคล้องของสภาพแวดล้อม build ที่ทำให้ผู้ดูแลแพ็กเกจหงุดหงิดมาหลายปี
แม้ว่า Debcraft จะแสดงถึงก้าวที่มีแนวโน้มดีต่อการทำให้การแพ็กเกจ Debian เข้าถึงได้มากขึ้น แต่การถกเถียงของชุมชนเผยให้เห็นว่าปัญหาความซับซ้อนพื้นฐานอาจต้องการการเปลี่ยนแปลงที่พื้นฐานมากกว่าเพื่อแก้ปัญหาอย่างแท้จริง การถกเถียงยังคงดำเนินต่อไปขณะที่ผู้มีส่วนร่วมชั่งน้ำหนักประโยชน์ของการปรับปรุงแบบเพิ่มหน่วยเทียบกับความจำเป็นในการปฏิรูปโครงสร้างพื้นฐานการแพ็กเกจของ Debian อย่างครอบคลุมมากขึ้น
อ้างอิง: Debcraft - Easiest way to modify and build Debian packages