ฉันจะคัดลอกแพ็กเกจจาก Debian ไปยัง PPA ของฉันได้อย่างไร


10

ฉันต้องการเพิ่มแพ็คเกจอาหารล่าสุดจาก Debian sid ไปยังPPA ของทีมของเราเพื่อให้ผู้ใช้ Ubuntu ที่ต้องการเรียกใช้ Gourmet รุ่นที่ทันสมัยสามารถเพิ่ม PPA นั้นไปยังแหล่งซอฟต์แวร์ของพวกเขา (พึ่งพาได้อย่างชาญฉลาดซึ่งไม่น่าเป็นปัญหามากนักเนื่องจากการพึ่งพาในปัจจุบันทั้งหมดของเรานั้นมีอยู่แล้วในทุกรุ่นของ Ubuntu ที่รองรับอยู่ในปัจจุบัน)

ฉันได้ดาวน์โหลด*.dscไฟล์และเดเบียนและ orig tarballs แล้วและฉันก็สามารถใช้มันกับsource.changesไฟล์ของแพ็คเกจได้ ฉันยังดาวน์โหลดกุญแจสาธารณะของผู้ดูแล Debian เพื่อให้dputสามารถตรวจสอบแพ็คเกจได้ ฉันพยายามอัปโหลดแพคเกจไปยัง PPA ของเราโดยใช้dput ppa:~gourmet/ppa gourmet_0.17.3-1_source.changes(ฉันลองโดยไม่มี tilda) ดูเหมือนว่าจะประสบความสำเร็จ แต่ฉันไม่ได้รับอีเมลยืนยันและไม่มีแพ็คเกจใดแสดงอยู่ที่PPAของเราซึ่งทำให้ฉันเชื่อแพคเกจนั้นถูกปฏิเสธเพราะคีย์ของผู้ดูแล Debian นั้นไม่ได้อยู่ในคีย์ของสมาชิกในทีมของเรา

ดังนั้นวิธีที่ง่ายที่สุดในการ "คัดลอก" แพ็คเกจจาก Debian (sid) ไปยัง Launchpad PPA คืออะไร ฉันจำเป็นต้องสร้างแพคเกจทั้งหมดขึ้นใหม่ในพื้นที่ก่อนที่จะอัพโหลดได้ไหม?


BTW ในฐานะรุ่นพัฒนา Ubuntu จะซิงค์แพ็คเกจของ Debian โดยอัตโนมัติ (ก่อน DebianImportFreeze นั่นคือ) ฉันจะยอมรับคำตอบที่บอกวิธีการคัดลอกแพคเกจจาก Utopic อย่างมีความสุข
Bernhard Reiter

คำตอบ:


12

คุณต้องสร้างแพ็กเกจซอร์สใหม่แบบโลคัลก่อนทำการอัพโหลดเพื่อปรับบันทึกการเปลี่ยนแปลงและสร้างไฟล์การเปลี่ยนแปลงอีกครั้ง แม้ว่า backporting แพคเกจเป็นงานที่ค่อนข้างธรรมดา แต่นี่เป็นสคริปต์ ตรวจสอบbackportpackage ไอคอน Manpageคำสั่งอูบุนตู-dev เครื่องมือติดตั้ง ubuntu-dev-toolsแพคเกจ

หากต้องการ backport แพคเกจจาก Debian เพียงระบุซีรีส์ distro เป้าหมาย, PPA และไฟล์ dsc สำหรับแพ็คเกจ:

backportpackage -d trusty -u ppa:gourmet/ppa http://ftp.de.debian.org/debian/pool/main/g/gourmet/gourmet_0.17.3-1.dsc

มันง่ายยิ่งกว่าในการ backport แพ็คเกจจาก Ubuntu หนึ่งไปยังอีกเพราะคุณไม่จำเป็นต้องค้นหาไฟล์ dsc สมมติว่าเราต้องการเปลี่ยนจาก utopic เป็น trusty:

backportpackage -s utopic -d trusty -u ppa:gourmet/ppa gourmet

! น่ากลัว สิ่งเดียวที่ดูเหมือนเป็นข้อบกพร่องสำหรับฉันคือแพคเกจที่ลงเอยใน PPA ส่วนตัวของฉัน (~ ockham-razor / ppa) แม้ว่าฉันจะผ่านการ~gourmet/ppaโต้แย้งเป็น-uพารามิเตอร์ (แต่ฉันโชคดีที่สามารถคัดลอกจาก PPA ของฉันไปยังทีม Gourmet ผ่าน Launchpad)
Bernhard Reiter

1

มีสองสามวิธีในการทำเช่นนี้

เมื่อฉันทำสิ่งนี้เพื่อ Rhythmbox ฉันทำตามสูตรต่อไปนี้:

ใช้ไฟล์ต้นฉบับและไฟล์ debian

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

ข คลายการบีบอัดแหล่งที่มา (.orig.tar.xz)

ค. เปลี่ยนชื่อโฟลเดอร์ซอร์สเช่นrhythmbox-3.0.3

ค. คลายการบีบอัดไฟล์ debian (.debian.tar.xz)

d ย้ายโฟลเดอร์ debian ภายใต้ไดเรกทอรีต้นทาง

อี dch -iเพื่อเปลี่ยนไฟล์ changelog

ฉ เปลี่ยนชื่อแพคเกจ "เสถียร" เป็นชื่อของเป้าหมายของ ubuntu - ที่นี่ฉันใช้อย่างแม่นยำสำหรับ 12.04 เปลี่ยนรุ่นตามความเหมาะสมสำหรับแอปของคุณ ที่นี่ rhythmbox คือ 3.0.3 - ดังนั้นฉันเพิ่งเพิ่ม-1~ppafossfreedom

rhythmbox (3.0.3-1~ppafossfreedom) precise; urgency=low

  * rebuild

 -- fossfreedom <fossfreedom@somewheremail.com>  Thur, 07 Jun 2012 13:19:18 +0100

ก. สร้างแพ็คเกจซอร์สใหม่:dh_build --createorig

ชั่วโมง สร้างเพียงแหล่งที่มีคีย์ของคุณ: debuild -S -k0xABCDEFGที่ABCDEFGเป็นกุญแจสำคัญของคุณ

ผม. อัปโหลดแพ็คเกจของคุณสำหรับการสร้าง:

cd ..
dput ppa:fossfreedom/rhythmbox rhythmbox_3.0.3-1_sources.changes    

นั่นเป็นแพคเกจการสร้างใหม่โดยทั่วไป โอ้ดี ฉันหวังว่าจะมีวิธีที่ง่ายกว่านี้ แต่ฉันเดาว่าไม่มี
Bernhard Reiter

ลองดูdgetคำสั่งจากdevscriptsแพ็คเกจ มันจะทำให้เรื่องนี้ง่ายขึ้นเล็กน้อย
andrewsomething

@ andrewsomething - เปลี่ยนเป็นคำตอบด้วยตัวอย่าง :) - ฉันสนใจที่จะดูว่าสามารถทำให้บรรจุภัณฑ์ของฉันง่ายขึ้นหรือไม่
fossfreedom

ดีฉันมีคำตอบที่แตกต่างกันโดยสิ้นเชิง แต่คุณควรเรียนรู้เกี่ยวกับdget=) ไฟล์ dsc มีข้อมูลทั้งหมดเกี่ยวกับส่วนอื่น ๆ ของแพ็กเกจแหล่งที่มา ดังนั้นdgetจะคว้าทุกอย่างและแยกมันออกมาอย่างถูกต้องหากคุณให้ลิงค์ไปยังไฟล์ dsc dget -ux http://http.debian.net/debian/pool/main/r/rhythmbox/rhythmbox_3.0.3-1.dsc
andrewsomething

คำตอบที่เรียบร้อย - ทำได้ดี +1
fossfreedom
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.