มีวิธีง่าย ๆ ในการแก้ไขแหล่งที่มาของ Ubuntu โดยอัตโนมัติเมื่อมันพร้อมใช้งานและอัปโหลดไปยัง PPA หรือไม่


9

ฉันกำลังมองหาเครื่องมือที่จะทำสิ่งต่อไปนี้:

  • ตรวจหาการอัปเดตชุดแพ็กเกจต้นทางโดยอัตโนมัติ (เฉพาะ gtk + 2 และ gtk + 3)
  • ดาวน์โหลดแพ็คเกจต้นทาง
  • ใช้แพทช์ที่กำหนดเองของฉันเองกับแหล่งที่มา
  • ส่ง patch อย่างถูกต้อง ( dpkg-source --commit [something-or-other]?)
  • หากอัปโหลดไปยัง PPA สำเร็จบน Launchpad (ซึ่งฉันสามารถชี้ระบบของฉันไปตามปกติ)

Launchpad ทำทุกอย่างให้ฉันได้ไหม

ถ้าไม่มีเครื่องมือที่จะทำสิ่งเหล่านั้นโดยอัตโนมัติจากงาน cron หรือไม่?

ความล้มเหลวข้างต้นฉันจะเคาะบางสิ่งบางอย่างร่วมกัน แต่ฉันต้องใช้คำสั่งอะไร:

  • ตรวจจับและดาวน์โหลดการอัพเดตแพ็กเกจซอร์สหรือไม่ (ฉันต้องการสิ่งที่ชอบ (bzr | git) ดึงมากกว่าต้อง apt-get source สำเนาใหม่ทุกครั้ง)
  • ส่งแพทช์อัตโนมัติในพื้นที่ (ฉันจะใช้รายละเอียดการคอมมิทเดียวกันทุกครั้ง)?
  • อัปโหลดแหล่งที่มาแบบไม่โต้ตอบไปยัง PPA หรือไม่

ฉันพบคำถาม ( วิธีที่เหมาะสมในการแก้ไข Wine สำหรับ PPA ที่กำหนดเองคืออะไร ) ซึ่งคล้ายคลึงกัน แต่ขั้นตอนในคำตอบนั้นยังคงเป็นคู่มือและโต้ตอบ เวอร์ชันที่คัดออกอย่างสมบูรณ์พร้อมการตรวจหาการอัปเดตแหล่งที่มาโดยอัตโนมัติจะช่วยได้มาก

คำตอบ:


2

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


แต่รุ่น gtk-3 lp:ubuntu/gtk+3.0ไหนที่ติดตาม? เวอร์ชันการพัฒนาที่มั่นคงหรือปัจจุบันในปัจจุบัน?
Khurshid Alam
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.