คำถามติดแท็ก packaging

อ้างถึงการสร้างและบำรุงรักษาแพ็คเกจ Debian หรือ snap ไม่ว่าคุณจะต้องการอัปเดตแพ็คเกจสำหรับการใช้งานส่วนตัวหรือสงสัยว่าจะนำซอฟต์แวร์ของคุณไปสู่มือของผู้ใช้ Ubuntu ได้อย่างไรแท็กนี้เหมาะสำหรับคุณ

4
ฉันสามารถอัปเดตซอฟต์แวร์ที่ติดตั้งจากซอร์สโค้ดโดยตรง
แม้ว่าจะเกือบปีแล้วตั้งแต่ฉันเริ่มใช้ Ubuntu ฉันไม่ได้พยายามติดตั้งซอฟต์แวร์จากแหล่งที่มา จริง ๆ แล้วฉันไม่พบว่าจำเป็นต้องทำเช่นนั้น แต่ตอนนี้ฉันกำลังทำงานกับซอฟต์แวร์ซึ่งอยู่ในขั้นตอนการลงทะเบียนผู้ใช้ในที่เก็บ แต่ซอร์สโค้ดของเวอร์ชันเสถียรล่าสุดมีอยู่ที่หน้าแรกของซอฟต์แวร์ ฉันได้เรียนรู้ว่าการติดตั้งจากซอร์สโค้ดอาจทำได้ยากหากซอฟต์แวร์มีการอ้างอิงจำนวนมาก อย่างไรก็ตามถ้าฉันเล่นงานฉันจะมีความสุขกับเวอร์ชั่นล่าสุด แต่ฉันสงสัยว่าซอฟต์แวร์ดังกล่าวสามารถอัปเดตตัวเองโดยอัตโนมัติหรือฉันจะต้องเรียกใช้สคริปต์บางอย่างเพื่ออัปเดตแพคเกจ หรือแย่กว่านั้นฉันจะต้องติดตั้งอัพเดตใหม่ทุกครั้งตั้งแต่เริ่มต้น นอกจากนี้ฉันอยากรู้ว่ามีข้อได้เปรียบเฉพาะของการติดตั้งจากแหล่งอื่นนอกเหนือจากที่กล่าวมาหรือไม่

1
จะสร้างไฟล์ deb ที่บอกระบบว่าจำเป็นต้องรีบูตหรือไม่
ผมวางแผนที่จะตั้งค่า PPA หรือบางทีอาจจะส่งแพคเกจของฉันไป Debian แต่มีสิ่งที่ฉันจำเป็นต้องรู้จริงๆผมเข้าใจว่าแพคเกจได้ตามปกติทำอะไรกับ/var/run/reboot-requiredและมีการระบุไว้ใน/var/run/reboot-required.pkgแต่วิธีการว่าหนึ่งไม่สร้างไฟล์ deb ที่บอก ระบบผ่านวิธีการที่จำเป็นต้องรีบูตเครื่องเพื่อทำการเปลี่ยนแปลงที่จำเป็นทั้งหมดหรือไม่ มีการตั้งค่าสถานะที่ฉันจำเป็นต้องใช้ในไฟล์อย่างใดอย่างหนึ่งหรือเป็นคู่มือเพิ่มเติมกว่านั้น ฉันใช้ Ubuntu GNOME 16.04 กับ GNOME 3.20

1
ความแตกต่างระหว่างคำสั่ง "เปลี่ยนชื่อ" ที่แตกต่างกันคืออะไร?
ตั้งแต่ Ubuntu 14.04 มีrenameคำสั่งอย่างน้อยสามคำ: renameจัดทำโดยutil-linuxแพคเกจให้ดูการเปลี่ยนชื่อมนุษย์ renameให้บริการโดยperlแพคเกจดูผู้ชาย prename renameจัดทำโดยrenameแพคเกจดูเปลี่ยนชื่อไฟล์ผู้ชาย คำถาม: อะไรคือความแตกต่างระหว่างคำสั่งเหล่านั้น? ทำไมมีหลายแพ็คเกจที่ให้คำสั่งต่างกันโดยใช้ชื่อเดียวกัน - ฉันคิดว่านั่นไม่ใช่อุบัติเหตุหรือมันคืออะไร? มันจะไม่ตรงไปตรงมาหรือเปล่าที่perlแพ็คเกจจะรวมrenameคำสั่ง“ เต็ม” หรือไม่รวมrenameคำสั่งใด ๆเลย? เหตุใดการแยกนี้จึงดูเหมือนไม่เสร็จสิ้นอย่างต่อเนื่องจนถึงอย่างน้อย Ubuntu 17.04 คำถามนี้ถูกถามใน U&L แล้ว (ตามที่ฉันค้นพบในภายหลัง): มีอะไรกับการเปลี่ยนชื่อทั้งหมด: prename, เปลี่ยนชื่อ, เปลี่ยนชื่อไฟล์?

3
จะสร้างและจัดการ PPAs หลายสถาปัตยกรรมได้อย่างไร
ฉันมีโปรแกรมที่จำเป็นต้องคอมไพล์ใหม่สำหรับอูบุนตูทุกรุ่น ขณะนี้ฉันกำลังใช้ PPA ของ Ubuntu สำหรับการจัดจำหน่ายในปัจจุบัน ในที่สุดฉันต้องจัดทำแพ็คเกจสำหรับ Ubuntu รุ่นก่อนหน้า ฉันไม่แน่ใจว่าจะทำสิ่งนี้ได้อย่างไร เซิร์ฟเวอร์ build PPA ของ Ubuntu ทำงานอย่างไร - เพียงแค่ดูที่ฟิลด์การแจกจ่ายในรายการการเปลี่ยนแปลงล่าสุด (ในไฟล์ debian / changelog) เพื่อพิจารณาว่าแพ็คเกจใดที่ควรสร้าง ข้อกำหนดเดเบียนอนุญาตให้เพิ่มการแจกแจงแบบหลายค่าลงในฟิลด์การกระจาย แต่นี่ไม่ได้ตะเข็บเพื่อช่วยฉัน เอกสารบางอย่างของอูบุนตูพูดถึงการเข้ารหัสชื่อการแจกจ่ายลงในหมายเลขเวอร์ชั่น (ในไฟล์ changerog) แต่วิธีนี้ใช้งานได้จริง มีโปรแกรมเวอร์ชั่นใหม่แล้วอะไรนะ? ฉันจะเพิ่มรายการเปลี่ยนแปลงใหม่แต่ละรายการและ PPA buildserver สร้างโดยอัตโนมัติสำหรับแต่ละแพคเกจใหม่กระจายหลังจาก dput'ing ขึ้นหรือไม่ หรือ PPA buildserver ดูที่รายการการเปลี่ยนแปลงแรกหรือไม่

1
ความหมายของสตริง XubuntuY ในชื่อแพ็คเกจของ Ubuntu คืออะไร?
แต่ละชื่อแพ็คเกจอยู่ในรูปแบบ: package-XubuntuY*_amd64(i386) ดังนั้นคำถามของฉันคือ: X หมายถึงอะไร Y หมายถึงอะไร ตัวอย่างเช่น binutils_2.22-6ubuntu1.3_amd64 ความหมายของตัวเลขคืออะไร6และ1.3

2
วิธีการแพคเกจบริการ systemd?
ฉันพยายามจัดทำแอพพลิเคชั่นแบบโมโนให้เรียกใช้เป็นบริการ systemd ฉันได้ทำตามคำแนะนำที่นี่: https://wiki.debian.org/Teams/pkg-systemd/Packaging ฉันได้เพิ่ม dh-systemd (> = 1.5) ในการสร้างไฟล์ควบคุม debian ของฉันแล้ว ฉันได้เพิ่ม - with = systemd ไปยังไฟล์กฎของฉันดังนี้: %: dh $@ --with=cli --with=systemd ฉันเพิ่มไฟล์บริการของฉันลงในโฟลเดอร์ debian ของฉันชื่อ mypackage.service พร้อมเนื้อหาดังต่อไปนี้: [Unit] Description=My Service Description After=network-online.target [Service] Type=simple ExecStart=/usr/bin/mono /usr/lib/mypackage/myservice.exe [Install] WantedBy=multi-user.target อย่างไรก็ตามการสร้างให้คำเตือนและข้อผิดพลาด lintian ต่อไปนี้: Now running lintian... E: mypackage: postrm-does-not-call-updaterc.d-for-init.d-script etc/init.d/mypackage W: …

2
วิธีเพิ่มการพึ่งพาหลังจากส่งแอปที่เป็นกรรมสิทธิ์ไปยัง USC
ฉันส่งแอปของฉัน "ตัวควบคุมความสว่าง" ภายใต้ใบอนุญาตลิขสิทธิ์และได้รับการเผยแพร่ มันมีไฟล์. executable แต่แอพขึ้นอยู่กับpython-wxgtk2.8 ว่าฉันเขียนไว้ในช่องแสดงความคิดเห็น แต่ผู้ที่ทำแพ็กเกจอาจเพิกเฉย มีวิธีใดบ้างที่ฉันสามารถเพิ่มการพึ่งพาตนเองได้? โปรดทราบว่าฉันไม่ได้ทำการเดบิวต์แพ็คเกจ ฉันเพิ่งจะลบไฟล์ brightness.py และส่งมัน ฉันสามารถสร้างไฟล์. deb กับไฟล์อ้างอิงและส่งมันได้หรือไม่ เดิมทีแอพนี้เป็นโอเพ่นซอร์สแต่ฉันส่งมันภายใต้กรรมสิทธิ์เพื่อที่ฉันจะได้ไม่ต้องจัดทำมัน

4
ฉันได้ยื่นข้อบกพร่องของ ITP ที่ bugs.debian.org - ตอนนี้ฉันจะนำแพ็คเกจไปใช้กับ Ubuntu ได้อย่างไร
ฉันเขียนไลบรารีการพัฒนาที่ฉันต้องการรวมไว้ในคลังเก็บ Ubuntu จากสิ่งที่ฉันเข้าใจวิธีที่ดีที่สุดในการทำเช่นนี้คือการได้รับแพ็คเกจเป็น Debian ก่อนแล้วจึงขอซิงค์แพคเกจ นี่คือข้อผิดพลาด ITP ฉันทำอะไรตอนนี้? ดูหน้านี้ฉันเห็นสิ่งที่น่ากลัวเช่น "419 วันในการเตรียมการ" และ "กิจกรรมสุดท้าย 404 วันที่ผ่านมา" ฉันได้รับความประทับใจว่าการได้รับแพ็คเกจลงใน Debian นั้นเป็นกระบวนการที่ช้า มีอะไรที่ฉันสามารถทำได้เพื่อเร่งกระบวนการให้เร็วขึ้น? ฉันพยายามทำงานให้มากที่สุดเท่าที่จะทำได้เพื่อให้กระบวนการนี้ราบรื่นขึ้น - ฉันมีสาขาที่มีแพ็คเกจ Debian (ซึ่งได้รับจาก Lintian โดยไม่มีข้อผิดพลาด)

3
ฉันจะติดตั้งแพคเกจด้วยความถนัดได้อย่างไร
ฉันได้ดูการสอนที่ถนัดและอ่าน man page แต่ฉันไม่เข้าใจเลย หลังจากที่คุณเปิดตัวความถนัดคุณจะพูดว่า "install package foo" ได้อย่างไร? หรือค้นหาแพ็คเกจทั้งหมดด้วย "foo" ในชื่อของพวกเขา?

1
จะเกิดอะไรขึ้นระหว่างการอัปเกรดแพ็คเกจ
ฉันเพิ่งเริ่มสร้างแพ็คเกจ Ubuntu สำหรับซอฟต์แวร์ของฉันบน Launchpad พวกมันค่อนข้างเรียบง่าย ส่วนใหญ่มีเพียงไฟล์และสคริปต์ที่ทริกเกอร์ผ่านไฟล์. install .preinst .postinst .prerm และ. postrm ดูเหมือนว่าการติดตั้งและลบจะทำงานได้ดี อย่างไรก็ตามการอัพเกรดจากรุ่นหนึ่งไปเป็นรุ่นถัดไปนั้นเป็นเรื่องยาก จะเกิดอะไรขึ้นเมื่อมีการอัพเกรดแพ็คเกจ มันเหมือนกับการถอนการติดตั้งเวอร์ชั่นก่อนหน้าและติดตั้งเวอร์ชั่นใหม่หรือไม่? ไฟล์ทั้งหมดจากแพ็กเกจก่อนหน้านี้ถูกลบและแทนที่ด้วยไฟล์ในรายการ. install จากแพ็คเกจใหม่หรือไม่? รันสคริปต์. prerm, postrm, preinst และ preinst ทั้งหมดหรือไม่ ฉันจะแยกแยะสิ่งต่าง ๆ ที่ควรเกิดขึ้นระหว่าง 'การติดตั้งใหม่' และการอัปเกรดได้อย่างไร

2
อะไรคือความแตกต่างระหว่างการพึ่งพาและการพึ่งพาล่วงหน้า?
คำว่า "ขึ้นอยู่กับ" และ "ขึ้นอยู่กับล่วงหน้า" คืออะไรและความแตกต่างระหว่างข้อกำหนดแพคเกจทั้งสองประเภทเมื่อฉันติดตั้งบางอย่างใน Ubuntu

2
เหตุใดจึงมีแพ็คเกจ snap - มีความต้องการจริงหรือไม่?
สมมติฐาน สุจริตฉันไม่รู้มากเกี่ยวกับแพ็คเกจ snap - แต่นี่ไม่เกี่ยวข้องกับคำถามนี้ - ดูด้านล่าง ฉันคิดว่าระบบแตกต่างจากระบบเดิมที่มีอยู่อย่างมาก การเปลี่ยนแปลงนั้นสมเหตุสมผลหรือไม่? มีความต้องการที่แท้จริงเพียงพอหรือไม่ นั่นคือ - มีกรณีการใช้งานใหม่ที่มีความสำคัญพอที่จะพัฒนารูปแบบใหม่ - และโครงสร้างพื้นฐานที่เกี่ยวข้องหรือไม่ ไม่สามารถเปลี่ยนวิธีการปัจจุบันเพื่อให้ครอบคลุมกรณีการใช้งานใหม่ได้หรือไม่? หรือว่าฉันพลาดประเด็นไป? เป็นไปได้ว่าสิ่งที่ฉันเห็นส่วนใหญ่เป็นการตลาด - ชื่อใหม่และการนำเสนอใหม่สำหรับการเปลี่ยนแปลงทางเทคนิคเล็กน้อยเพื่อให้ได้โอกาสที่ร่างกายจะถือว่าเป็น "ใหม่และดีกว่า" และอาจถูกนำมาใช้จริง นอกจากนี้อาจเป็นไปได้ว่าแพคเกจใหม่นั้นมีความใกล้เคียงกับรูปแบบที่มีอยู่เดิมซึ่งส่วนใหญ่เป็นการเปลี่ยนแปลงการนำเสนอต่อผู้ใช้ นั่นอาจเป็นทางออกที่ดีแน่นอน ในกรณีนี้คำถามนี้จะมีความเกี่ยวข้องไม่มาก จากนั้นฉันหวังว่าจะยังคงมีประโยชน์มากพอที่จะตอบปัญหาด้านข้าง เพียงแจ้งให้เราทราบหากคำถามนั้นไม่มีประโยชน์หรือทำให้ผู้ใช้ใหม่สับสนฉันยินดีที่จะลบ แล้วทำไมพวกมันถึงมีอยู่จริง? พื้นหลัง ปฏิกิริยาแรกของฉันคือ "ไม่เข้าท่าเลย!" นี่คล้ายกับสถานการณ์ที่บางคนถามว่าไม่มีความสุขในเว็บไซต์ฟิสิกส์ทำไมไม่มีใครพูดถึงความคิดใหม่ที่ยอดเยี่ยมของเขาในคำตอบ มันดูเหมือนแนวคิดแคร็กเกอร์ จนถึงตอนนี้จากความรู้ทางกายภาพที่แท้จริงว่ามันยากที่จะหาจุดเริ่มต้น ฉันเขียนคำตอบที่ไม่ได้สัมผัสความคิดของเขาด้วยคำเพียงคำเดียว แต่อธิบายว่าเพราะเหตุใดคนเราจึงไม่พูดถึงความคิดที่แตกออก - ไม่ใช่กรณีแรกของเรื่องนั้น ฉันคิดว่าคำตอบคือการกดปุ่มจุด หากสมมติฐานของฉันถูกต้องกรณีนี้จะคล้ายกัน แต่อาจจะไม่ใช่ - มาดูกัน

4
ฉันจะแยกรุ่นแพคเกจจาก debian / changelog ได้อย่างไร
วิธีที่มีประสิทธิภาพมากที่สุดในการแยกวิเคราะห์debian/changelogไฟล์ของแพ็กเกจซอร์ส(หรือdebian/control?) เพื่อรับหมายเลขเวอร์ชันของแพ็กเกจคืออะไร สิ่งที่ต้องการ: pkgver=$(dpkg-parsechangelog | magic_goes_here) ฉันต้องการที่จะแยกหมายเลขรุ่น (และเพียงหมายเลขรุ่น) เพื่อให้ฉันสามารถจัดการในสคริปต์ ฉันคาดหวังว่าจะพบdpkg-*โปรแกรมอรรถประโยชน์สำหรับจุดประสงค์นี้ แต่ฉันยังไม่พบสิ่งใด

1
ปัญหาการตรวจสอบสิทธิ์ด้วย PPA ของฉัน
ฉันสร้างแพ็คเกจและอัปโหลดไปยัง PPA ของฉัน หลังจากสร้างเสร็จฉันไปติดตั้ง แต่ต้องเผชิญกับข้อความนี้: $ sudo apt-get install stackapplet Reading package lists... Done Building dependency tree Reading state information... Done The following NEW packages will be installed: stackapplet 0 upgraded, 1 newly installed, 0 to remove and 31 not upgraded. Need to get 17.7kB of archives. After this operation, …

2
Dch โหมดไม่โต้ตอบ
ฉันพยายามหาวิธีที่จะทำงานdchในโหมดที่ไม่ต้องมีการโต้ตอบเพื่อรวมการdebian/changelogสร้างและจัดการไฟล์ไว้ในเชลล์สคริปต์ ดูเหมือนว่าเฉพาะเมื่อเรียกใช้ด้วยอาร์กิวเมนต์ที่-r ""ใช้งานได้ (ตามที่ระบุไว้ที่นี่ ) อย่างไรก็ตามฉันต้องใช้อาร์กิวเมนต์ที่แตกต่างกัน
11 packaging 

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