การสร้าง debian package
เดเบียนมีระบบแพกเกจที่ค่อนข้างครบเครื่อง และการ build แพกเกจ ก็มีเครื่องมืออำนวยความสะดวกหลายตัว ใครสนใจหัด build deb ก็อ่าน Debian New Maintainers' Guide ได้ครับ เนื้อหาค่อนข้างครบครัน ในบทความนี้ เราจะมาดูเครื่องมือ build deb กันคร่าวๆ ก่อน
ก่อนอื่น มาดูส่วนประกอบของ source สำหรับ debian package กันก่อน โดยลองดึง source ของแพกเกจสักตัวมาดู:
$ apt-get source package
จะได้ส่วนประกอบของ source ทั้งหมดสำหรับ build แพกเกจ (ถ้าไม่สำเร็จ ลองตรวจดู /etc/apt/sources.list ว่ามีบรรทัด deb-src หรือไม่) ซึ่งโดยปกติ source ดังกล่าวจะประกอบด้วย:
- แฟ้ม
package_version-release.dscเป็นแฟ้มที่ list แฟ้มทั้งหมดที่เกี่ยวข้อง - แฟ้ม
package_version.orig.tar.gzเป็นซอร์สโค้ดต้นฉบับจากต้นน้ำ (upstream) โดยยังไม่มีการแก้ไขใดๆ บางครั้งเรียกว่า pristine source (ซอร์สบริสุทธิ์) - แฟ้ม
package_version-release.diff.gzเป็น patch ที่จะเพิ่มกฎการ build deb รวมทั้ง patch ที่เปลี่ยนแปลงแก้ไขซอร์สต้นฉบับตามความจำเป็นสำหรับเดเบียน
สังเกตว่าเดเบียนจะแยก pristine source กับ debian patch จากกันต่างหาก ซึ่งจะมีประโยชน์สองทาง ทางแรกคือ เพื่อให้ชัดเจน ว่าเดเบียนแก้ไขอะไรไปบ้าง ถ้าพูดถึงข้อกฎหมายก็จะดูได้ง่าย รวมทั้งช่วยให้สะดวกในการตรวจสอบส่วนที่ยังไม่รวมเข้าในซอร์สต้นน้ำด้วย ส่วนอีกทางหนึ่ง คือประหยัดเนื้อที่ในแหล่ง mirror (ถ้าเทียบกับระบบอย่าง rpm) เพราะ release ต่างๆ ที่ใช้ upstream version เดียวกัน จะเก็บ pristine source เพียงชุดเดียวใน mirror และแต่ละ release จะต่างกันแค่ส่วน debian patch เท่านั้น
เมื่อได้แฟ้มเหล่านี้มาแล้ว apt-get ก็จะแตก source tarball พร้อมกับ
apply patch ให้เรียบร้อย ซึ่งเมื่อเข้าไปดูเนื้อหาข้างใน จะมีไดเรกทอรี debian/ ซึ่งเก็บข้อมูลต่างๆ สำหรับการ build deb โดยแฟ้มที่เป็นศูนย์กลางของกลไกการ build จะอยู่ที่ debian/rules
ซึ่งเนื้อหาก็เป็น Makefile ธรรมดานี่เอง แต่จะมี target
ชุดหนึ่งที่เดเบียนกำหนดไว้สำหรับการ build แพกเกจ ส่วนแฟ้มอื่นๆ
ที่สำคัญก็คือ debian/control ซึ่งเก็บ metadata ของแพกเกจ เช่น ชื่อแพกเกจ คำบรรยาย ความสัมพันธ์กับแพกเกจอื่น ฯลฯ และ debian/changelog ซึ่งเก็บบันทึกการเปลี่ยนแปลงของ release ต่างๆ และ เดเบียนจะถือข้อมูลล่าสุดใน debian/changelog เป็นสำคัญ ในการกำหนดรุ่นของแพกเกจ
สำรวจพอคร่าวๆ แล้ว ก่อนลงมือ build ก็ทำให้แน่ใจเสียก่อน ว่ามีสิ่งที่ต้องใช้ครบ โดยสั่ง:
# apt-get build-dep package
เป็นการติดตั้งแพกเกจอื่นๆ ที่จำเป็นสำหรับการ build แพกเกจที่กำหนด
จากนั้น เมื่อได้ครบแล้ว ก็ลงมือ build กันเลย คำสั่งที่ใช้ก็คือ dpkg-buildpackage (อยู่ในแพกเกจ dpkg-dev) โดย cd ไปที่ไดเรกทอรีบนสุดของซอร์สโค้ดที่แตกออกมา แล้วก็สั่ง:
$ dpkg-buildpackage -rfakeroot
เมื่อ build เสร็จ จะได้แฟ้ม *.deb อยู่ที่ไดเรกทอรีถัดขึ้นไป
จบตอนแรกนี้ คุณก็สามารถ build debian package จากซอร์สเองได้แล้ว
แต่ถ้าคุณต้องการ build แพกเกจระดับคุณภาพ เพื่อใช้เผยแพร่
จะมีเครื่องมืออื่นที่น่าใช้กว่านี้อีก ซึ่งจะกล่าวถึงในตอนต่อไป
ต้องการทำ PC Embedded System เริ่มต้นไงดีครับ
ต้องการ ทำ PC Embedded System จะเริ่มต้นไงดีครับ เคยใช้งาน และติดตั้ง Linux ทั่วไปแต่ไม่ไม่เคยทำ Linux Embedded หาข้อมูลจาก internet ก็ไม่รู้จะเริ่มตรงไหน มีแหล่งข้อมูลที่สามารถเริ่มต้นการเรียนรู้ และพัฒนา หรือ หากมีชาว Debain Club ท่านใดสามารถทำได้ หรือยินดีที่จะเป็นที่ปรึกษา บ้างมั๊ยครับ
OpenMan
กำัลัง...จะได้เริ่มครับ
ตอนนี้ที่บริษัทที่ผมทำงานอยู่ มี OMAP5912 ให้ลองเล่นครับ ก็ดู ๆ อยู่เหมือนกันว่าจะเริ่มยังไงดี
แต่ยังไม่ได้เริ่มอะไรเป็นชิ้นเป็นอันเท่าไรครับ สงสัยต้องคอยแลกเปลี่ยนความรู้กันต่อ ๆ ไป :)
**********************
Key ID: D4CEFD37
Fingerprint: 1ED3 27F6 48C8 5C9D 4285 F24D D64E C0AF D4CE FD37
**********************










Recent comments
18 hours 41 min ago
2 days 5 min ago
2 days 22 hours ago
3 days 41 min ago
3 days 13 hours ago
5 days 21 hours ago
5 days 22 hours ago
5 days 22 hours ago
1 week 13 hours ago
1 week 2 days ago