PPA & Packaging: มีเวอร์ชั่นของแพ็คเกจสำหรับหลาย distros


36

(อ้างจากการแชท)

มี PPA บน launchpad สำหรับแพ็กเกจซอร์สสำหรับโครงการ IRC bot ที่ฉันเกี่ยวข้อง (เนื่องจากบรรจุภัณฑ์ขั้นกลางทั้งหมดสำหรับสิ่งต่าง ๆ ระหว่างการวางจำหน่ายจึงจัดเป็น PPA แบบ "ทดลอง") คำถาม: ฉันได้บรรจุสิ่งของสำหรับสร้างที่ชัดเจนแล้ว เบาะแสใด ๆ ที่ฉันจะสามารถสร้างบรรจุภัณฑ์เดียวกันได้ยกเว้นการบรรจุหีบห่อสำหรับผู้ไม่ฝักใฝ่ฝ่ายใดและวางไว้ใน PPA เดียวกันกับที่ฉันใส่ไว้ในบรรจุภัณฑ์ที่ชัดเจน?

คำตอบ:


41

อาจเป็นวิธีที่ง่ายที่สุดคือคัดลอกไบนารีบน Launchpad:

  1. ไปที่ PPA ของคุณและคลิกที่ 'ดูรายละเอียดแพ็คเกจ':

    ป้อนคำอธิบายรูปภาพที่นี่

  2. คลิกที่ 'คัดลอกแพ็คเกจ':

    ป้อนคำอธิบายรูปภาพที่นี่

  3. เลือกแพ็คเกจ Lucid:

    ป้อนคำอธิบายรูปภาพที่นี่

  4. เลือก 'ไม่ฝักใฝ่ฝ่ายใด' สำหรับซีรี่ส์และเลือก 'คัดลอกไบนารีที่มีอยู่':

    ป้อนคำอธิบายรูปภาพที่นี่

  5. คลิก 'คัดลอกแพ็กเกจ' และทำมัน!


ขอบคุณมาก. คำแนะนำของคุณถูกจุด ขอบคุณมากสำหรับการตอบสนองที่รวดเร็วเช่นกัน
โธมัสวอร์ด

@Evil: ไม่มีปัญหา ดีใจที่ฉันช่วยได้!
นาธานออสมันมี. ค.

4
หมายเหตุสำหรับคำถามอื่น ๆ ที่เชื่อมโยงไปที่นี่ !!! การคัดลอกไบนารี่ที่มีอยู่ไม่สามารถใช้งานได้กับโปรแกรมที่ติดตั้งสำหรับอูบุนตูเวอร์ชั่นอื่น! ดู rkhunter สำหรับแพลตฟอร์มวินโดวส์ของฉัน PPA และประวัติการเปลี่ยนแปลงสำหรับรุ่นสุวิมลจะเข้าใจสิ่งที่ผมหมายถึง: launchpad.net/~trekcaptainusa-tw/+archive/rkhunter/+packages
โทมัสวอร์ด

@ThomasWard: จุดดี - มันไม่ได้ผลเสมอไป
นาธานออสมัน

2
@KhurshidAlam ขออภัยสำหรับการตอบกลับช้าสุด สิ่งนั้นจะล้มเหลวด้วย "การเปลี่ยนแปลงไม่ถูกต้อง" และคุณต้องติดแท็กแต่ละรายการแยกต่างหากเมื่อใช้ PPA ด้วยรุ่นที่แตกต่างกัน [ launchpad.net/~nginx/+archive/stable ] ( launchpad.net/~nginx/+archive/stable ) เป็นตัวอย่างที่ดีของสิ่งนี้เพราะเพื่อให้มันสร้างฉันต้องเพิ่มการกระจายไปยังรุ่นเพื่อที่จะสร้าง ถูกต้องกับไลบรารีที่แตกต่างกันทั้งหมด (ฉันยังคงรักษาสัญญา PPAS ของทีม nginx ไว้ดังนั้นตอนนี้ฉันจึงใช้มันเป็นตัวอย่าง)
Thomas Ward

11

หากการคัดลอกไบนารีสำหรับแพ็คเกจที่คุณสร้างไม่ทำงานคุณจะต้องอัปโหลดแพ็กเกจซอร์สสำหรับแต่ละเวอร์ชั่น distro โดยแก้ไขdebian/changelogไฟล์

วิธีบรรจุใหม่สำหรับรุ่น Distro อื่น

  1. แก้ไขdebian/changelogไฟล์ในไดเรกทอรีแพ็กเกจแหล่งข้อมูลของคุณ
  2. เปลี่ยนทั้งรุ่นและการกระจายเป้าหมายเพื่อสะท้อนให้เห็นซึ่ง distro คุณกำลังสร้างสำหรับ

    ตัวอย่างเช่น:nginx (1:1.4.1-0ubuntu1~preciseppa1) precise; urgency=low
  3. สร้างแพคเกจซอร์สใหม่อีกครั้ง: debuild -S
  4. อัปโหลด.changesไฟล์ไปยัง PPA ของคุณ:dput ppa:teward/nginx-stable-testing ../nginx_1.4.1-0ubuntu1~preciseppa1_source.changes

หากการสร้างสำเร็จแล้วขอแสดงความยินดีคุณเพิ่งสร้างแพ็คเกจสำหรับ distro นั้น! หากไม่มีคุณจะต้องตรวจสอบบันทึกการทำงานบน Launchpad และแก้ไขปัญหาที่คุณพบ

อ้างอิง:


นี่คือสิ่งที่ฉันทำ! : D MOTUs (เทพเจ้าแห่งพื้นที่เก็บข้อมูลจักรวาล) อธิบายสิ่งนี้เมื่อฉันต้องการทำบิลด์ต่างnginxๆ และโปรแกรมอื่น ๆ ใน PPA และพวกเขาช่วยแก้ไขปัญหามากมายของฉัน ขอบคุณสำหรับการโพสต์นี้! :)
โธมัสวอร์ด

ใช่ฉันคิดว่านี่จะเป็นข้อมูลที่เป็นประโยชน์ในการจัดทำเอกสารและทำให้พร้อมใช้งานสำหรับผู้ทำแพ็กเกจใหม่เนื่องจากอาจมีช่วงการเรียนรู้ที่สูงชันในการใช้เครื่องมือบรรจุภัณฑ์เดเบียนทั้งหมด PPA อัพโหลดการประชุมและการดีบัก
TrinitronX

จริง ฉันไม่ได้เปลี่ยนคำตอบที่ยอมรับเพราะในขณะที่คำถามนี้ไม่จำเป็นต้องกังวลเกี่ยวกับการเปลี่ยนไลบรารี่ที่มีอยู่ในอูบุนตูเวอร์ชันต่าง ๆ ด้วยnginxหรือrkhunterแพคเกจอื่น ๆ ที่ฉัน backport บ่อย ๆ มันมีปัญหาการพึ่งพามากไปยังที่อยู่ (แตกต่างกันdepends:ในไฟล์ควบคุมและอื่น ๆ ) ดังนั้นฉันมักจะใช้ในprogramversion-1~RELEASE0กรณีที่ ~ RELEASE0 มักจะเป็นจำนวนที่มีรุ่นที่กำหนดไว้ Debian to Ubuntu นั้นเป็นกรณี :)
Thomas Ward

ใช่การพึ่งพานั้นเป็นจุดที่เจ็บปวดอย่างยิ่งสำหรับ backporting ;-) ฉันเห็นด้วยคำตอบที่ยอมรับนั้นน่าจะพอเพียงในกรณีส่วนใหญ่และสำหรับผู้ใช้ repos control source bazaar โดยใช้สูตร bzr-builder ของ Launchpad ก็ดูน่าสนใจเช่นกัน อย่างไรก็ตามเมื่อมาถึงแพ็คเกจที่มีการอ้างอิงหลายครั้งบางครั้งคุณต้องสร้างแพ็คเกจที่กำหนดเองสำหรับ distro เป้าหมายของคุณ
TrinitronX

และฉันก็ถอยกลับnginxจาก Debian Unstable to Precise, Quantal, Raring และ Saucy (และ Trusty ใน PPA แต่ฉันก็มั่นใจใน Trusty จนกระทั่ง Debian freeze จะมีข้อมูลล่าสุดจาก Debian ที่รวมอยู่ใน: P) สำหรับทีม NGINX แต่อนิจจามีข้อผิดพลาดบางครั้งที่ฉันไม่สามารถแก้ไขได้และ Debian ต้องจัดการกับ ... นี่คือเหตุผลที่ฉันมีความสัมพันธ์ที่ดีกับผู้ดูแล Debian :)
Thomas Ward
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.