บรรจุภัณฑ์ด้วย Debhelper
สำคัญ ที่ต้องการ: ข้อกำหนดจากส่วนที่เรียกว่า "Packaging From Scratch" บวกกับ debhelper และ dh-make ในฐานะที่เป็นผู้บรรจุหีบห่อคุณจะไม่ค่อยสร้างแพ็คเกจตั้งแต่เริ่มต้นตามที่เราได้ทำไว้ในส่วนก่อนหน้านี้ ตามที่คุณสามารถจินตนาการได้หลายงานและข้อมูลใน กฎระเบียบ ไฟล์เช่นเป็นแพคเก็ตทั่วไป เพื่อให้บรรจุภัณฑ์ง่ายและมีประสิทธิภาพมากขึ้นคุณสามารถใช้ debhelper เพื่อช่วยในการทำงานเหล่านี้ Debhelper คือชุดของสคริปต์ Perl (นำหน้าด้วย dh_) ที่ทำให้กระบวนการสร้างแพคเกจเป็นแบบอัตโนมัติ ด้วยสคริปต์เหล่านี้การสร้างแพ็คเกจ Debian กลายเป็นเรื่องง่ายมาก ในตัวอย่างนี้เราจะสร้างแพคเกจ GNU Hello อีกครั้ง แต่คราวนี้เราจะเปรียบเทียบผลงานของเรากับ Ubuntu Hello-debhelper บรรจุภัณฑ์ สร้างไดเรกทอรีที่คุณจะใช้งานอีกครั้ง: จากนั้นได้รับแพคเกจที่มาของอูบุนตู: เช่นเดียวกับตัวอย่างก่อนหน้าสิ่งแรกที่เราต้องทำคือการแกะกล่อง tarball เดิม (ต้นน้ำ) แทนการคัดลอก tarball ต้นน้ำไป hello_2.1.1.orig.tar.gz ดังที่เราได้ทำในตัวอย่างก่อนหน้านี้เราจะแจ้งให้ dh_make ทำงานให้เรา สิ่งเดียวที่คุณต้องทำคือเปลี่ยนชื่อโฟลเดอร์ต้นทางเพื่อให้อยู่ในรูปของ
ในการสร้าง "debianization" เริ่มต้นของแหล่งข้อมูลที่เราจะใช้ dh_make. dh_make จะถามคำถามต่างๆดังนี้ ข้อควรระวัง ใช้เฉพาะ dh_make -e ครั้งหนึ่ง ถ้าคุณเรียกใช้อีกครั้งหลังจากที่คุณทำมันเป็นครั้งแรกมันจะไม่ทำงานอย่างถูกต้อง หากคุณต้องการเปลี่ยนแปลงหรือทำผิดพลาดให้ลบไดเร็กทอรีต้นทางและยกเลิกการติดตั้ง tarball ต้นน้ำ จากนั้นคุณสามารถย้ายข้อมูลไปยังไดเร็กทอรีต้นทางและลองอีกครั้ง วิ่ง dh_make -e ทำสองสิ่ง: สวัสดี โปรแกรมไม่ซับซ้อนมากเท่าที่เราได้เห็นในส่วนที่เรียกว่า "Packaging From Scratch" บรรจุภัณฑ์ไม่จำเป็นต้องมีมากกว่าไฟล์พื้นฐาน ดังนั้นให้เราลบ .ex ไฟล์: สำหรับ สวัสดีคุณยังจะไม่ * การอนุญาต * ดัชนีคู่มือการบรรจุหีบห่อ Ubuntu จำเป็นต้อง README.Debian (ไฟล์ README สำหรับปัญหาเฉพาะ Debian ไม่ใช่โปรแกรม README ของโปรแกรม) dirs (ใช้โดย dh_installdirs เพื่อสร้างไดเรกทอรีที่จำเป็น), เอกสาร (ใช้โดย dh_installdocs เพื่อติดตั้งเอกสารประกอบของโปรแกรม) หรือ ข้อมูล (ใช้โดย dh_installinfo เพื่อติดตั้งไฟล์ข้อมูล) ลงใน เดเบียน ไดเรกทอรี สำหรับข้อมูลเพิ่มเติมเกี่ยวกับไฟล์เหล่านี้โปรดดูที่ส่วน "dh_make example files" ณ จุดนี้คุณควรมีเท่านั้น การเปลี่ยนแปลง, compat, ควบคุม, ลิขสิทธิ์, และ กฎระเบียบ ไฟล์ใน เดเบียน ไดเรกทอรี จากส่วนที่เรียกว่า "Packaging From Scratch" ไฟล์เฉพาะที่ใหม่คือ compatซึ่งเป็นไฟล์ที่มีไฟล์ debhelper (ในกรณีนี้คือ 4) ที่ใช้ คุณจะต้องปรับ การเปลี่ยนแปลงเล็กน้อยในกรณีนี้เพื่อให้เห็นว่าแพคเกจนี้มีชื่อ Hello-debhelper ไม่ใช่แค่ สวัสดี: โดยใช้ debhelperสิ่งเดียวที่เราต้องเปลี่ยนมา ควบคุม เป็นชื่อ (แทน) สวัสดี สำหรับ Hello-debhelper) และเพิ่ม debhelper (> = 4.0.0) ไปที่ Build-ขึ้นอยู่กับ ฟิลด์สำหรับแพคเกจต้นทาง แพคเกจ Ubuntu สำหรับ Hello-debhelper ดูเหมือนกับ: เราสามารถคัดลอก ลิขสิทธิ์ ไฟล์และ postinst และ prerm สคริปต์จากอูบุนตู Hello-debhelper เนื่องจากไม่มีการเปลี่ยนแปลงเนื่องจากส่วนที่เรียกว่า "Packaging From Scratch" นอกจากนี้เราจะคัดลอกไฟล์ กฎระเบียบ ไฟล์เพื่อให้เราสามารถตรวจสอบได้ ไฟล์สุดท้ายที่เราต้องดูคือ กฎระเบียบ, ที่อำนาจของ debhelper สคริปต์สามารถมองเห็นได้ debhelper รุ่นของ กฎระเบียบ มีขนาดเล็ก (54 บรรทัดเมื่อเทียบกับ 72 บรรทัดในเวอร์ชันจากส่วนที่เรียกว่า "กฎ") debhelper ดูเหมือนว่า: touch build binary-indep: install # ไม่มีไฟล์ที่ไม่ใช่สถาปัตยกรรมที่จะอัพโหลด # สร้างโดยแพ็คเกจนี้ ถ้ามีพวกเขาจะ # ทำที่นี่ binary-arch: ติดตั้ง dh_testdir -a dh_testroot -a dh_installdocs -a NEWS dh_installchangelogs -a ChangeLog dh_strip -a dh_compress -a dh_fixperms -a dh_installdeb -a dh_shlibdeps -a dh_gencontrol -a dh_md5sums -a dh_builddeb -a ไบนารี: binary-indep binary- arch .PHONY: binary-arch binary-indep checkroot แบบไบนารี สังเกตว่างานต่างๆเช่นการทดสอบถ้าคุณอยู่ในไดเร็กทอรีที่ถูกต้อง (dh_testdir) ให้แน่ใจว่าคุณกำลังสร้างแพคเกจที่มีสิทธิ์ root (dh_testroot), การติดตั้งเอกสาร (dh_installdocs และ dh_installchangelogs) และทำความสะอาดหลังจากสร้าง (dh_clean) จะถูกจัดการโดยอัตโนมัติ แพคเกจจำนวนมากที่ซับซ้อนมากขึ้นกว่า สวัสดี มี กฎระเบียบ ไฟล์ไม่ใหญ่เพราะ debhelper สคริปต์จัดการงานส่วนใหญ่ สำหรับรายการที่สมบูรณ์ของ debhelper โปรดดูที่ส่วนที่เรียกว่า "List of debhelper สคริปต์ "พวกเขายังมีเอกสารที่ดีในแต่ละของพวกเขา ชาย หน้า เป็นแบบฝึกหัดที่มีประโยชน์ในการอ่านหน้า man (เขียนได้ดีและไม่ยาว) สำหรับสคริปต์ช่วยเหลือแต่ละตัวที่ใช้ในด้านบน กฎระเบียบ ไฟล์.