รูปแบบไฟล์เก็บถาวร DEB (แพ็กเกจ Debian) เป็นระบบการแพ็กเกจที่ใช้กันอย่างแพร่หลายสำหรับการแจกจ่ายซอฟต์แวร์บน Debian และระบบปฏิบัติการ Linux ที่ใช้ Debian เช่น Ubuntu โดยให้วิธีมาตรฐานสำหรับการรวมซอฟต์แวร์เข้ากับการอ้างอิง การตั้งค่าไฟล์ และข้อมูลเมตา ซึ่งทำให้ผู้ใช้สามารถติดตั้ง อัปเกรด และลบแพ็กเกจซอฟต์แวร์ได้อย่างง่ายดาย
ไฟล์เก็บถาวร DEB เป็นไฟล์เก็บถาวรที่บีบอัดโดยมีโครงสร้างและรูปแบบการตั้งชื่อที่เฉพาะเจาะจง โดยปกติจะมีนามสกุลไฟล์ `.deb` และสร้างขึ้นโดยใช้ยูทิลิตีการเก็บถาวร `ar` ไฟล์เก็บถาวรประกอบด้วยส่วนประกอบหลักสามส่วน ได้แก่ ไฟล์ `debian-binary` ไฟล์เก็บถาวร `control.tar.gz` และไฟล์เก็บถาวร `data.tar.gz`
ไฟล์ `debian-binary` เป็นไฟล์ข้อความธรรมดาที่ระบุเวอร์ชันของรูปแบบ DEB ที่ใช้ในไฟล์เก็บถาวร โดยปกติจะมีบรรทัดเดียวที่มีหมายเลขเวอร์ชัน เช่น `2.0`
ไฟล์เก็บถาวร `control.tar.gz` มีข้อมูลเมตาของแพ็กเกจและข้อมูลการควบคุม โดยเป็นไฟล์เก็บถาวร tar ที่บีบอัดด้วย gzip ซึ่งมีไฟล์และไดเร็กทอรีหลายรายการ ไฟล์ที่สำคัญที่สุดในไฟล์เก็บถาวรนี้คือไฟล์ `control` ซึ่งมีข้อมูลที่จำเป็นเกี่ยวกับแพ็กเกจ เช่น ชื่อ เวอร์ชัน สถาปัตยกรรม การอ้างอิง ผู้ดูแล และคำอธิบาย
ไฟล์อื่นๆ ในไฟล์เก็บถาวร `control.tar.gz` อาจรวมถึง: - `preinst`: สคริปต์ที่ทำงานก่อนที่จะติดตั้งแพ็กเกจ - `postinst`: สคริปต์ที่ทำงานหลังจากติดตั้งแพ็กเกจ - `prerm`: สคริปต์ที่ทำงานก่อนที่จะลบแพ็กเกจ - `postrm`: สคริปต์ที่ทำงานหลังจากลบแพ็กเกจ - `conffiles`: รายการไฟล์การกำหนดค่าที่อยู่ในแพ็กเกจ - `shlibs`: รายการการอ้างอิงไลบรารีที่ใช้ร่วมกัน - `triggers`: ไฟล์ที่กำหนดตัวกระตุ้นแพ็กเกจ
ไฟล์เก็บถาวร `data.tar.gz` มีไฟล์และไดเร็กทอรีจริงที่ประกอบเป็นแพ็กเกจซอฟต์แวร์ โดยเป็นไฟล์เก็บถาวร tar ที่บีบอัดด้วย gzip เมื่อติดตั้งแพ็กเกจ เนื้อหาของไฟล์เก็บถาวรนี้จะถูกแยกไปยังไดเร็กทอรีรากของระบบไฟล์
รูปแบบไฟล์เก็บถาวร DEB ใช้รูปแบบการตั้งชื่อที่เฉพาะเจาะจงสำหรับไฟล์แพ็กเกจที่สร้างขึ้น ชื่อไฟล์แพ็กเกจประกอบด้วยหลายส่วน: `<name>_<version>-<revision>_<architecture>.deb` โดย `<name>` แสดงถึงชื่อแพ็กเกจ `<version>` คือหมายเลขเวอร์ชันของซอฟต์แวร์ `<revision>` คือการแก้ไขแพ็กเกจ (ใช้เมื่อแพ็กเกจซอฟต์แวร์เวอร์ชันเดียวกันถูกแพ็กเกจหลายครั้ง) และ `<architecture>` ระบุสถาปัตยกรรมเป้าหมาย (เช่น amd64, i386, arm64)
เมื่อติดตั้งแพ็กเกจ DEB ตัวจัดการแพ็กเกจ (เช่น `apt` หรือ `dpkg`) จะดำเนินการหลายขั้นตอน โดยจะแยกเนื้อหาของไฟล์เก็บถาวร `data.tar.gz` ไปยังระบบไฟล์ เรียกใช้สคริปต์ก่อนการติดตั้งใดๆ ที่กำหนดไว้ในไฟล์เก็บถาวร `control.tar.gz` และอัปเดตฐานข้อมูลแพ็กเกจเพื่อบันทึกการติดตั้ง ตัวจัดการแพ็กเกจยังแก้ไขและติดตั้งการอ้างอิงใดๆ ที่แพ็กเกจต้องการ
ข้อดีหลักอย่างหนึ่งของรูปแบบไฟล์เก็บถาวร DEB คือความสามารถในการจัดการการอ้างอิง ไฟล์ `control` ในไฟล์เก็บถาวร `control.tar.gz` ระบุการอ้างอิงของแพ็กเกจ รวมถึงแพ็กเกจที่จำเป็นและข้อจำกัดของเวอร์ชัน เมื่อติดตั้งแพ็กเกจ DEB ตัวจัดการแพ็กเกจจะแก้ไขและติดตั้งการอ้างอิงที่จำเป็นโดยอัตโนมัติ เพื่อให้แน่ใจว่าซอฟต์แวร์มีส่วนประกอบที่จำเป็นทั้งหมดเพื่อทำงานได้อย่างถูกต้อง
รูปแบบไฟล์เก็บถาวร DEB ยังรองรับการกำหนดเวอร์ชันและการอัปเกรดแพ็กเกจ แพ็กเกจแต่ละแพ็กเกจมีหมายเลขเวอร์ชันที่ระบุไว้ในไฟล์ `control` เมื่อมีการเผยแพร่แพ็กเกจเวอร์ชันใหม่ แพ็กเกจนั้นสามารถติดตั้งทับเวอร์ชันที่มีอยู่ได้ ตัวจัดการแพ็กเกจจะจัดการกระบวนการอัปเกรด เรียกใช้สคริปต์ก่อนการลบและหลังการติดตั้งที่จำเป็น และอัปเดตฐานข้อมูลแพ็กเกจตามนั้น
นอกจากส่วนประกอบหลักแล้ว แพ็กเกจ DEB ยังสามารถมีไฟล์และไดเร็กทอรีเพิ่มเติม เช่น เอกสาร ตัวอย่าง และไฟล์การแปลภาษา ไฟล์เหล่านี้มักจะถูกวางไว้ในไดเร็กทอรีเฉพาะภายในไฟล์เก็บถาวร `data.tar.gz` โดยปฏิบัติตามมาตรฐานลำดับชั้นระบบไฟล์ (FHS)