Theppitak's blog

My personal blog.

01 พฤษภาคม 2549

Intro to Debian Process (1)

เพื่อส่งเสริมให้ผู้สนใจจะเข้าร่วมพัฒนากับเดเบียน ได้มีแนวทางในการเข้าร่วม หรืออย่างน้อย ก็เพื่อประกอบความเข้าใจสำหรับผู้อ่าน blog ของผม ว่าที่ผ่านๆ มา ที่เขียนเรื่องเกี่ยวกับเดเบียนเนี่ย ผมทำอะไรกันแน่ เพราะเดเบียนเขามีศัพท์เฉพาะหลายคำเอาไว้ใช้

เอกสารแนะนำ

ก่อนอื่น แนะนำเอกสารที่ควรอ่านเสียก่อน สำหรับผู้สนใจเข้าร่วมพัฒนาเดเบียน:

  • New Maintainers' Guide ให้ข้อมูลเบื้องต้น สำหรับผู้ที่สนใจจะเริ่มทำแพกเกจสำหรับเดเบียน โดยเริ่มตั้งแต่สอนวิธีเริ่มสร้าง debian package จาก source ตั้งต้น, การตรวจสอบแพกเกจด้วย lintian, การอัปโหลด, การออกแพกเกจรุ่นใหม่
  • Developer's Reference เป็นเอกสารอ้างอิงสำหรับนักพัฒนาเดเบียนทุกคน มีเรื่องต่างๆ ที่จำเป็น ตั้งแต่ขั้นตอนการสมัครเป็น maintainer, หน้าที่ของ debian developer, การจัดการ key, การจัดการแพกเกจ, การ sponsor แพกเกจ, internationalization
  • Debian Policy Manual เป็นเอกสารที่จำเป็นต้องอ่าน ถ้าจะ build package เพราะ policy เป็นแนวทางการทำงานร่วมกันของนักพัฒนาเดเบียนเรือนพันทั่วโลก โดยไม่เกิดปัญหาความเข้ากันไม่ได้ระหว่างแพกเกจต่างๆ เริ่มตั้งแต่ filesystem hierarchy standard, ระบบเมนู, นโยบายสำหรับระบบย่อยต่างๆ ที่มีองค์ประกอบหลายชิ้น เช่น Emacs, Java, Perl, Python ฯลฯ

ยังมีเอกสารน่าสนใจอื่นๆ อีก ที่ Debian Developers' Corner

สายการพัฒนา

ทีนี้ สำหรับผู้อ่านที่ยังไม่ทราบวิธีนับรุ่นและสายการพัฒนาต่างๆ ของเดเบียน ขอเกริ่นคร่าวๆ ว่าเดเบียนขณะใดๆ มีสายการพัฒนาหลักๆ 3 สาย คือ stable, testing และ unstable โดย stable คือรุ่นที่คงตัว ไม่ค่อยมีการเปลี่ยนแปลง ยกเว้น security update หรือการแก้ bug ที่ร้ายแรง, testing คือรุ่นทดสอบที่รอปล่อยตัวเป็น stable รุ่นถัดไป มีการเปลี่ยนแปลงค่อนข้างบ่อย แต่ผ่านการทดสอบใน unstable มาระยะหนึ่งแล้ว ส่วน unstable คือรุ่นใหม่สุดที่เปลี่ยนแปลงบ่อยสุด แพกเกจต่่างๆ จะเริ่มอัปโหลดเข้าที่นี่ เพื่อรอ bug report ระยะหนึ่งก่อนย้ายเข้า testing แต่ทั้งนี้ ยังมีแหล่งอัปโหลดที่ใช้ทดสอบในหมู่นักพัฒนากันเองที่ experimental ที่มักใช้เป็นที่พักของแพกเกจที่มีองค์ประกอบหลายส่วน เช่น GNOME ที่ต้องรอย้ายเข้า unstable พร้อมกันเป็นชุด และรุ่นต่างๆ ที่เคลื่อนผ่านสายการพัฒนาเหล่านี้ จะมีชื่อรหัส (codename) ซึ่งได้มาจากชื่อตัวละครใน Toy Story โดยมี sid (เด็กที่ชอบทำลายของเล่น) เป็น unstable เสมอ รายละเอียดอ่านได้จาก FAQ

สำหรับผู้ดูแลแพกเกจ การอัปโหลดแพกเกจโดยปกติจึงมีสองที่ คือ unstable และ experimental แต่โดยทั่วไป ถ้าแพกเกจนั้นไม่ได้เกาะเกี่ยวกับใครมาก หรือไม่ใช่การเปลี่ยนแปลงขนานใหญ่ในโครงสร้างภายใน ก็มักจะอัปโหลดเข้า unstable และเมื่อแพกเกจสถิตอยู่ใน unstable ได้ระยะหนึ่งโดยไม่มี release-critical bug ก็จะย้าย (migrate) เข้า testing โดยอัตโนมัติ

คำที่เกี่ยวกับแพกเกจ

มีคำศัพท์เบื้องต้นที่ควรรู้เกี่ยวกับแพกเกจคือ:

  • upstream หมายถึงผู้พัฒนาต้นน้ำ ได้แก่เจ้าของโครงการต่างๆ ที่พัฒนาและเผยแพร่ซอร์สโค้ดต้นฉบับ เช่น GNOME, KDE, X.org
  • maintainer หมายถึงผู้ดูแล debian package โดยเอาซอร์สจาก upstream มาเพิ่มสคริปต์สำหรับสร้างเป็น debian package และคอยปรับรุ่นใหม่ๆ ใน debian ตามการออกรุ่นของ upstream
  • debian-native หมายถึงแพกเกจที่ไม่มี upstream source แต่เป็นแพกเกจที่พัฒนาภายใน debian เอง เช่น debhelper ซึ่งเป็นเครื่องมือช่วยสร้าง debian package ซึ่งแพกเกจเหล่านี้ จะนับรุ่นเสมือนเป็น upstream โดยไม่มีเลข debian release ต่อท้าย ในขณะที่แพกเกจที่เป็น non-native จะนับรุ่นโดยใช้รุ่นของ upstream ประกอบกับเลข debian release เช่น 0.3.3-4 หมายถึง upstream เป็นรุ่น 0.3.3 และเป็นการทำ debian package รุ่นที่ 4 ใน debian โดยอ้างอิง upstream รุ่นเดียวกันนี้
  • pristine source หมายถึง source tarball ของ upstream ซึ่งใน debian จะแยกออกจากสคริปต์ต่างๆ ที่ใช้สร้างแพกเกจ (ต่างจาก .src.rpm ของ redhat ที่จะรวมทั้ง source ทั้ง RPM spec มาในก้อนเดียวกัน) โดยมี suffix เป็น ".orig.tar.gz" เช่น จาก upstream source thaibrowser-0.3.3.tar.gz ก็จะเปลี่ยนชื่อเป็น thaibrowser-0.3.3.orig.tar.gz เพื่อแยกให้รู้ความแตกต่างจาก tarball อื่นๆ และที่เรียกว่า pristine source (ซอร์สบริสุทธิ์) ก็เพราะ debian จะไม่แตะต้องข้อมูลใน .orig.tar.gz นี้เลย ถ้าจะ patch ก็จะแยก patch ต่างหาก แม้แต่ script ที่ใช้ build package ก็จะอยู่ในรูป patch สำหรับสร้าง debian/ directory ภายใน upstream source tree

ยาวละ ไว้คราวหน้ามาต่อ

0 ความเห็น:

แสดงความเห็น (มีการกลั่นกรองสำหรับ blog ที่เก่ากว่า 14 วัน)

<< กลับหน้าแรก

hacker emblem