นั่นเป็นคำถามที่กว้างมาก ฉันจะพยายามตอบให้มากที่สุดเท่าที่จะทำได้ แต่แน่นอนว่าจะไม่เป็นการสอนทีละขั้นตอน นี่เป็นเพราะไม่มีอัลกอริทึมทีละขั้นตอนสำหรับการสร้างแพคเกจ วิธีที่คุณจะทำนั้นขึ้นอยู่กับหลายปัจจัยส่วนใหญ่ขึ้นอยู่กับประเภทของแพคเกจ (แอปพลิเคชันไลบรารี) โครงสร้างของแหล่งที่มาและรายละเอียดมากมาย
โชคดีที่มีคำแนะนำอย่างละเอียดที่http://packaging.ubuntu.com
ฉันจะพยายามช่วยคุณเล็กน้อยในการทำความเข้าใจกระบวนการทั้งหมดดังนั้นเมื่อคุณคุ้นเคยกับมันมากขึ้น คู่มือบรรจุภัณฑ์มีแหล่งข้อมูลสำหรับความช่วยเหลือเพิ่มเติม
ก่อนอื่นคุณควรตระหนักว่าการสร้างแพ็คเกจ (ไฟล์. deb) เป็นกระบวนการแยกจากการสร้าง PPA การสร้าง PPA เป็นเรื่องของการไปยังโปรไฟล์ของ Launchpad ของคุณและคลิกลิงก์ "สร้าง PPA ใหม่" นั่นคือทั้งหมดที่ มันถูกสร้างขึ้นมันใช้งานได้ แต่มันว่างเปล่า ในการอัปโหลดแพ็คเกจคุณต้องสร้างขึ้นก่อน แต่ก่อนอื่นให้ฉันตอบคำถามเล็กน้อยของคุณ
- ภาษาการเขียนโปรแกรมไม่สำคัญเลย มันอาจเป็นแอปพลิเคชัน C ++, Bash script, Brainfuck Hello World, ไฟล์ README ไฟล์เดียวหรือชุดรูปภาพสุดเท่ แพ็คเกจอาจมีไฟล์ใด ๆ ระหว่างการติดตั้งแพ็คเกจจะถูกแตกไปยังรูท ("/") ของระบบไฟล์ของคุณ ด้วยวิธีนี้พวกเขาสามารถวางไฟล์บางไฟล์ไว้ในโฟลเดอร์ไบนารีเพิ่มวอลล์เปเปอร์บางอย่างลงในชุดเริ่มต้นของ GNOME หรือให้สคริปต์ Bash แก่ผู้ใช้
- คุณไม่จำเป็นต้องเพิ่มสิ่งที่แหล่งที่มา ต้องเป็นไดเรกทอรีระดับบนสุดที่ชื่อว่า "debian" จะมีบางไฟล์ที่มีรายละเอียดแพ็คเกจ - ไฟล์เหล่านั้นจะถูกใช้เพื่อกำหนดประเภทของแพ็คเกจเป็นต้น
- การอ้างอิงอยู่ในรายการหนึ่งในไฟล์นี้ (ท่ามกลางรายละเอียดอื่น ๆ ) หาได้จากที่ไหน มันเป็นเพียงแพ็คเกจอื่น ๆ ที่แอปพลิเคชันของคุณใช้ ผู้พัฒนาแอปพลิเคชันจะรู้ว่าไลบรารีและแหล่งข้อมูลใดที่โปรแกรมของเขาต้องการดังนั้นเขาจึงไม่ควรมีปัญหามากในการแสดงรายการ
- เครื่องมือบางอย่างที่ใช้ในการสร้างแพคเกจ (ผู้สร้าง) สามารถกรอกข้อมูลการอ้างอิงโดยอัตโนมัติโดยอาจกำหนดว่าแอปของคุณต้องการอะไรในระหว่างการรวบรวม
- นอกจากนี้ยังขอแนะนำให้ใช้autotools นั่นคือสิ่งอื่น ๆ ที่คุณอาจต้องเพิ่ม แต่อาจเป็นไปได้ว่าซอฟต์แวร์เกือบทุกชิ้นจะใช้งานแล้ว AutoTools เป็นชุดโปรแกรมที่มีประโยชน์อย่างยิ่ง - automake, autoconf และ autoscan เพื่อตั้งชื่อไม่กี่ เมื่อคุณคอมไพล์ & ติดตั้งโปรแกรมด้วย. / config && make && ทำการติดตั้งที่มีชื่อเสียง จากนั้นเครื่องมืออัตโนมัติจะใช้ในการจัดการกับแหล่งข้อมูลโดยอัตโนมัติเพื่อเตรียมทรัพยากรอื่น ๆ ที่มาพร้อมกับแหล่งข้อมูลเพื่อการติดตั้งและเพื่อแยกผลลัพธ์ของการคอมไพล์ไปยังตำแหน่งที่เหมาะสม (เพื่อตอบคำถามของคุณ: บิลด์ ไบนารีจะไปที่ / usr / local / bin, เอกสารถึง / usr / local / share / docs เป็นต้นนอกจากนี้ไบนารีจากแพ็คเกจจะไปยังสถานที่ที่แตกต่างกันเช่นไบนารีไปยัง / usr / bin ด้วยรูปแบบไดเรกทอรีที่ซับซ้อนนี้ใช้ AutoTools - มันจะดูแลโดยอัตโนมัติและนั่นคือเหตุผลที่พวกเขามีประโยชน์มาก)
การสร้างแพ็คเกจ. deb อาจดูเหมือนว่าเป็นกระบวนการที่ซับซ้อน แต่ก็ไม่ได้ยาก ฉันขอแนะนำให้คุณใช้คู่มือ Ubuntu อย่างเป็นทางการในการสร้างแพ็คเกจ: http://packaging.ubuntu.com
มันใหญ่มาก แต่คุณจะเห็นว่าคุณสามารถข้ามข้อความส่วนใหญ่ไปได้ (ขึ้นอยู่กับแพ็คเกจที่คุณกำลังจะสร้าง) โดยทั่วไปกระบวนการบรรจุภัณฑ์ประกอบด้วยชิ้นส่วนเหล่านี้ (ทั้งหมดอธิบายไว้อย่างชัดเจนในคู่มือ) :
- เริ่มเครื่องมือบางอย่างที่ใช้ในการสร้างแพคเกจ
- รับแหล่งที่มา
- สร้างไดเร็กทอรี. /debian และกรอกข้อมูลที่จำเป็น
- สร้างแพ็คเกจด้วย debuild [ที่ควรสร้างชุดของไฟล์รวมถึง * .dsc, * _source.build, * _source.changes ซึ่งรับผิดชอบข้อมูลเกี่ยวกับแพ็คเกจและวิธีจัดการกับมัน (คุณจะต้องมี แหล่งที่มา. tar.gz)]
- ทดสอบว่าการทำงานทุกอย่างโดยการเรียกใช้ pbuilder ท้องถิ่น (มันจะนำไฟล์เหล่านี้ทั้งหมดดังกล่าวข้างต้นและพยายามที่จะรวมไว้ในแพคเกจ .deb โดยการสร้างแหล่งที่มาโดยอัตโนมัติด้วยความช่วยเหลือของ autotools - ที่ว่าทำไมพวกเขามีความสำคัญสำหรับบรรจุภัณฑ์[พูดตรงไปตรง - ไม่ - คุณสามารถเข้าร่วมโดยไม่มีพวกเขาหรือมีทางเลือกอื่น ๆ แต่นั่นเป็นวิธีที่ง่ายที่สุดและอื่น ๆ อาจต้องมีการตั้งค่าขั้นสูงเนื่องจากคุณจะต้องสั่งให้ผู้สร้างรู้วิธีสร้างแหล่งที่มา (โดยใช้ไฟล์. /debian/rules ) - แต่นั่นไม่ใช่สำหรับผู้เริ่มต้น] ) - หากคุณต้องการรับแพ็คเกจ. deb ก็เสร็จสิ้น
ตอนนี้คุณจะต้องอัปโหลดไปยัง PPA ของคุณซึ่งอธิบายไว้ในหน้าความช่วยเหลือนี้: https://help.launchpad.net/Packaging/PPA/Uploading
- ใช้ dput เพื่ออัปโหลดไฟล์เหล่านี้ไปยัง Launchpad
- Launchpad จะทำงาน pbuilder บนของพวกเขาคอมพิวเตอร์และสร้างแพคเกจในสภาพแวดล้อมที่สะอาด
- ในที่สุดแพ็คเกจควรปรากฏใน PPA
ตามที่คุณเห็นการสร้าง PPA คือไม่ตรงไปตรงมาว่า แต่อย่าตกใจมันก็ไม่ใช่เรื่องยาก นอกจากนี้ฉันขอแนะนำให้คุณไม่สนับสนุนให้นักพัฒนาซอฟต์แวร์ใช้ PPA เนื่องจากอาจไม่ฟังคุณเนื่องจากพวกเขาจะต้องทำงานเพิ่มเติมบางอย่าง (และหากพวกเขาต้องการพวกเขาจะทำมันไปแล้ว) แต่คุณอาจ ต้องการพยายามที่จะสนับสนุนนักพัฒนา Ubuntu และชุมชนทั้งหมดและมอบแพ็คเกจที่คุณเตรียมไว้ :)
ฉันขอให้คุณโชคดีในการสร้างแพ็คเกจหวังว่าคุณจะได้คำตอบที่เป็นประโยชน์ :)
เพื่อนของคุณRafałCieślak