ตรวจสอบคุณภาพแพกเกจด้วย lintian/linda
คล้าย ๆ กับที่ภาษาซีมี lint เป็นเครื่องมือตรวจสอบปัญหาในซอร์สโค้ด เดเบียนก็มีเครื่องมือที่ล้อชื่อกัน สำหรับตรวจสอบปัญหาในแพกเกจ คือ lintian แล้วก็มีเครื่องมือใหม่อีกชุดหนึ่งที่เกิดขึ้นทีหลัง คือ linda ถ้าคุณจะสร้างแพกเกจที่ใช้เผยแพร่ล่ะก็ คุณต้องไม่พลาดเครื่องมือทั้งสองนี้เด็ดขาด
นอกจากนี้ ในช่วงท้ายของตอนนี้ จะได้กล่าวถึง debuild
ซึ่งเป็นเครื่องมือสร้างแพกเกจที่รวมทุกขั้นตอนไว้ให้คุณสั่งได้ง่าย ๆ
เมื่อคุณสร้างแพกเกจด้วยคำสั่ง dpkg-buildpackage
แล้ว ก็สามารถตรวจสอบปัญหาด้วย lintian หรือ linda ได้โดยสั่งแบบนี้:
$ lintian -i package_version-release_arch.changes $ linda -i package_version-release_arch.changes
ปัญหาจะมีสองแบบ คือ error จะขึ้นต้นด้วย E:
และ warning จะขึ้นต้นด้วย W:
ก็เหมือนกับการเขียนโปรแกรมทั่วไป คุณไม่ควรให้มี error เหลืออยู่ และถ้าจะอัปโหลดเข้าเดเบียนอย่างเป็นทางการ ก็ไม่ควรมี warning เหลืออยู่เลย
สังเกตว่าแฟ้ม *.changes
นั้น จะถูกสร้างขณะ build แพกเกจ เป็นการสรุปการเปลี่ยนแปลงทั้งหมดที่เกิดขึ้นในการ build ครั้งนี้ เพื่อใช้ในการอัปโหลดเข้าแหล่งของเดเบียนต่อไป เนื้อหาในนั้นจะประกอบด้วยข้อมูลของการ build, รายการ changelog ของรุ่นที่ build และรายการแฟ้มที่จะอัปโหลดทั้งหมด (ได้แก่ debian patch และ *.deb
ที่เป็นผลลัพธ์ และถ้าเป็น release *-1
ที่ต้องอัปโหลด *.orig.tar.gz
ด้วย ก็จะมีเพิ่มด้วย) ดังนั้น การสั่ง lintian/linda กับแฟ้ม *.changes
จึงเป็นการตรวจสอบทุกแฟ้มที่เกี่ยวข้องกับการอัปโหลด มีกี่แพกเกจก็ตรวจสอบครบหมด
หากคุณจะตรวจสอบแยกรายการ ก็ทำได้ เช่น เมื่อจะตรวจสอบ binary package ก็สั่ง lintian/linda กับ *.deb
ได้เลย:
$ lintian -i foo.deb $ linda -i foo.deb
หรือถ้าจะตรวจสอบซอร์สของแพกเกจ ก็สั่ง lintian/linda กับ *.dsc
:
$ lintian -i foo.dsc $ linda -i foo.dsc
lintian และ linda อยู่ในแพกเกจชื่อเดียวกับโปรแกรม (คือ lintian
และ linda
ตามลำดับ)
ด้วยมาตรฐานคุณภาพของเดเบียน ขั้นตอนการตรวจสอบคุณภาพนี้จึงไม่ใช่แค่ส่วนเสริม แต่กลายเป็นเรื่องจำเป็นเลยทีเดียว และเพื่ออำนวยความสะดวกแก่ผู้ดูแลแพกเกจ จึงมีสคริปต์ตัวหนึ่งที่ช่วยเรียกทุกขั้นตอน ตั้งแต่ build แพกเกจ, ตรวจสอบคุณภาพด้วย lintian/linda และเซ็นกำกับแฟ้มอัปโหลดด้วย GPG เสร็จในคำสั่งเดียว คือ debuild
(อยู่ในแพกเกจ devscripts
)
ดังนั้น จึงขอแนะนำผู้ที่จะ build แพกเกจเพื่อเผยแพร่ ว่าควรใช้ debuild
ในการสร้างแพกเกจ แทนการสั่ง dpkg-buildpackage
โดยตรง วิธีสั่งก็แค่สั่งแบบนี้ที่ไดเรกทอรีซอร์ส:
$ debuild
ถ้าคุณต้องการเซ็น GPG กำกับแฟ้ม *.changes
และ *.dsc
เพื่อการอัปโหลด ก็ทำได้โดยเพิ่มตัวเลือก -k
ตามด้วย key ID เช่น:
$ debuild -kkey-id
แต่จะให้ดี ก็กำหนดแบบถาวรไว้ใน /etc/devscripts.conf
หรือ ~/.devscripts
เลย เพื่อจะได้ไม่ต้องเพิ่มตัวเลือก -k
ทุกครั้งที่ build โดยกำหนดรายการนี้:
DEBSIGN_KEYID="key-id"
ใน New Maintainers' Guide ยังได้แนะนำอีกรายการหนึ่ง ซึ่งมีประโยชน์สำหรับคนที่ build แพกเกจภายใน working copy ของ CVS หรือ SVN:
DEBUILD_DPKG_BUILDPACKAGE_OPTS="-i -ICVS -I.svn"
อาจจะเพิ่ม -I.git
หรืออะไรก็แล้วแต่ ตามระบบ version control ที่คุณใช้ จะเป็นการส่งตัวเลือกผ่าน debuild
ไปให้ dpkg-buildpackage
เสมอ ว่าให้ข้ามไดเรกทอรีของระบบ version control ขณะเก็บแฟ้มต่าง ๆ เข้าแพกเกจ (lintian/linda จะบ่น ถ้าพบไดเรกทอรีดังกล่าวปะปนไปในแพกเกจด้วย)
เครื่องมือ build และตรวจสอบคุณภาพของเดเบียนยังไม่จบแค่นี้ ตอนหน้าจะพูดถึงเครื่องมือ build อีกตัวหนึ่ง ที่ถ้าคุณดูแลแพกเกจไประยะหนึ่ง จะต้องพบกรณีที่ทำให้นึกถึงเครื่องมือแบบนี้ ไม่วันใดก็วันหนึ่ง
- thep's blog
- Log in to post comments
![]() |
ลิขสิทธิ์ของบทความเป็นของเจ้าของบทความแต่ละชิ้น ผลงานนี้ ใช้สัญญาอนุญาตของครีเอทีฟคอมมอนส์แบบ แสดงที่มา-อนุญาตแบบเดียวกัน 3.0 ที่ยังไม่ได้ปรับแก้ |