ดูเหมือนว่าสูตรการบรรจุเป็นวิธีที่จะไปที่นี่ โดยพื้นฐานแล้วสูตรการทำบรรจุภัณฑ์สามารถสร้างแพ็คเกจต้นทางของ Ubuntu โดยอัตโนมัติและอัปโหลดไปยัง PPA เมื่อใดก็ตามที่สาขา bzr บน Launchpad เปลี่ยนแปลง เอกสารออนไลน์สวยดี แต่ฉันจะให้คู่ของตัวอย่าง ...
ขั้นแรกคุณต้องระบุสาขาที่จะติดตาม (ตัวอย่างเช่นlp:gtk3
) จากนั้นเพิ่มคำสั่งเพื่อซ้อนสาขาบรรจุภัณฑ์ Debian ของคุณเองลงในสาขานั้น ดูสูตรนี้ที่ฉันสร้างขึ้นสำหรับงานสร้างรายวันของ Inkscape
# bzr-builder format 0.4 deb-version 1:0.48+devel+{revno}+{revno:packaging}
lp:inkscape
nest packaging lp:~inkscape.dev/inkscape/debian-packaging debian
สูตรนี้สร้างแพ็คเกจ Ubuntu ทุกวันโดยใช้แหล่งต้นน้ำล่าสุดสำหรับ Inkscape แต่คัดลอกคำแนะนำบรรจุภัณฑ์ Debian ที่กำหนดเองจากlp:~inkscape.dev/inkscape/debian-packaging
สาขาไปยังโฟลเดอร์ย่อยที่เรียกว่า " debian
"
หน้าสูตรบรรจุภัณฑ์ใน Launchpad ช่วยให้คุณระบุ PPA ที่จะอัปโหลดแพคเกจของคุณโดยอัตโนมัติ ในกรณีของเราก็จะถูกอัปโหลดที่นี่
คุณสามารถใช้สูตรของคุณบนแพ็คเกจ Ubuntu ที่มีอยู่แทนที่จะเป็นโดยตรงจากต้นทาง ตัวอย่างเช่นlp:ubuntu/gtk+3.0
. จากนั้นคุณต้องสร้างสาขาของรหัสนี้และทำการดัดแปลงใด ๆ ที่คุณต้องการ ลองเรียกมันว่าlp:~myaccount/ubuntu/saucy/gtk+3.0/my-custom-build
ตัวอย่าง จากนั้นคุณจะสร้างสูตรเพื่อรวมการเปลี่ยนแปลงของคุณโดยอัตโนมัติแทนที่จะทำตามคำแนะนำการบรรจุหีบห่อ สูตรจะมีลักษณะดังนี้:
# bzr-builder format 0.4 deb-version {debversion}+{date}
lp:ubuntu/gtk+3.0
merge my-custom-build lp:~myaccount/ubuntu/saucy/gtk+3.0/my-custom-build
สูตรนี้จึงสร้างแพ็คเกจอูบุนตูที่กำหนดเองโดยอัตโนมัติและอัปโหลดไปยัง PPA ของคุณเมื่อใดก็ตามที่มีการเปลี่ยนแปลงในแพ็คเกจอูบุนตูอย่างเป็นทางการ
หากคุณใช้วิธีการ "ผสาน" คุณมีสองทางเลือกในการใช้โปรแกรมแก้ไข ไม่ว่าคุณจะเพียงแค่แก้ไขซอร์สโค้ดอัปสตรีมโดยตรงในสาขาของคุณและปล่อยให้ bzr ดูแลการผสานหรือคุณสามารถสร้างไฟล์ปะแก้ภายในdebian/
โฟลเดอร์โดยใช้ quilt แต่ละคนมีข้อดี / ข้อเสียของตัวเอง วิธีการก่อนหน้านี้ค่อนข้างฉลาด ... หากหนึ่งในแพทช์ของคุณได้รับการพัฒนาโดยผู้พัฒนาอัปสตรีมการผสานจะยังคงใช้งานได้และแพ็คเกจ Ubuntu จะสร้าง OK วิธีหลังช่วยให้คุณสามารถจัดการแพตช์ของคุณโดยใช้วิธีการแบบ Debian ที่เป็นมาตรฐานในการแยกรหัสบรรจุภัณฑ์ออกจากรหัสอัปสตรีม ... อย่างไรก็ตามหากผู้พัฒนาอัปสตรีมใช้แพทช์หนึ่งในนั้น โปรแกรมแก้ไขและแพคเกจจะไม่สามารถสร้างได้
lp:ubuntu/gtk+3.0
ไหนที่ติดตาม? เวอร์ชันการพัฒนาที่มั่นคงหรือปัจจุบันในปัจจุบัน?