This is G o o g l e's cache of http://www.debianclub.org/node/70 as retrieved on 21 Jan 2007 02:46:41 GMT.
G o o g l e's cache is the snapshot that we took of the page as we crawled the web.
The page may have changed since that time. Click here for the current page without highlighting.
This cached page may reference images which are no longer available. Click here for the cached text only.
To link to or bookmark this page, use the following url: http://www.google.com/search?hl=en&q=cache%3Ahttp%3A%2F%2Fwww.debianclub.org%2Fnode%2F70&btnG=Search


Google is neither affiliated with the authors of this page nor responsible for its content.

User login

Links

debianclub.com
debian.org
ubuntuclub.com
blognone.com

Syndicate

Syndicate content

ตรวจสอบคุณภาพแพกเกจด้วย 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 อีกตัวหนึ่ง ที่ถ้าคุณดูแลแพกเกจไประยะหนึ่ง จะต้องพบกรณีที่ทำให้นึกถึงเครื่องมือแบบนี้ ไม่วันใดก็วันหนึ่ง