สร้าง PKGBUILD จาก. deb


11

ฉันมี.debแพ็คเกจเดเบียนซึ่งประกอบด้วยไบนารีของซอฟต์แวร์เป็น/usr/share/binโฟลเดอร์ในdataไฟล์บีบอัดและไฟล์บีบอัดข้อมูลเมตาดาต้าอีกไฟล์หนึ่งที่มี checksums ของไฟล์อื่น ๆ

เป้าหมายของฉันคือการสร้างการPKGBUILDติดตั้งแพคเกจ. deb อย่างถูกต้องบน archlinux

วิธีที่เหมาะสมในการทำเช่นนั้นคืออะไร?

เพียงพอที่จะคัดลอกเนื้อหาของ/usr/share/binไดเรกทอรีนั้นลงในpkg /usr/share/binสภาพแวดล้อม fakeroot โดยใช้build()ฟังก์ชันได้หรือไม่ โฟลเดอร์จะถูกคัดลอกไปยัง/usr/share/binตำแหน่งที่แท้จริงเมื่อติดตั้งแพคเกจบิลด์จริงหรือไม่


6
เป็นหลักใช่ (ยกเว้นใช้ฟังก์ชั่นแพคเกจ) ดูใน AUR เพื่อรับแพ็คเกจอื่น ๆ ที่ลงท้ายด้วย-binและใช้วิธีการเดียวกัน ...
jasonwryan

คำตอบ:


9

ใช่มันจะทำงานในลักษณะเดียวกับ PKGBUILD อื่น ๆ ที่มีแหล่งไบนารี - แตกไฟล์และคัดลอกไฟล์ สิ่งเดียวที่ควรจะกล่าวถึงก็คือว่า deb-เก็บประกอบด้วย 3 ไฟล์อื่น ๆ - debian-binary, ,control.tar.gz data.tar.gzmakepkg จะแยกไฟล์เก็บถาวรระดับแรกเท่านั้นจากนั้นคุณควรแตกdata.tar.gzไฟล์เอง

prepare() {
    tar -zxvf data.tar.gz
}

package() {
    # copy files
}

หรือคุณสามารถวาง deb-archive ในอาร์เรย์ noextract แล้วแตกเท่านั้นdata.tar.gz:

$ ar p source.deb data.tar.gz | tar zx

makepkgเปลี่ยนไดเรกทอรีปัจจุบันเป็น$srcdirก่อนที่จะดำเนินการฟังก์ชั่นดังนั้นคุณไม่จำเป็นต้องรวมอีกต่อไป ...
jasonwryan

@ jasonwryan นักพัฒนาหลายคนระบุว่าไม่มีการรับประกันว่าสิ่งนั้นจะยังคงเป็นจริง เพื่อประโยชน์ของการมีอายุยืนยาวมันอาจทำให้รู้สึกถึงการออกจากcd "${srcdir}"บรรทัดประเพณีในสถานที่
HalosGhost

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