ติดตั้งแพคเกจ 'แนะนำ' เมื่อผู้ใช้ถามถึงการกระทำที่เกี่ยวข้อง


10

สมมติว่าฉันกำลังสร้างแอปพลิเคชันไปยังแพคเกจ DEB ซึ่งมีการแนะนำแพคเกจการอ้างอิงขอเรียกมันว่า package1

ดังนั้น package1 ถ้าติดตั้งสามารถให้ฟังก์ชั่นพิเศษกับโปรแกรมของฉัน แต่ไม่เกี่ยวข้องโดยตรงกับฟังก์ชั่นพื้นฐานของโปรแกรมของฉัน (นั่นคือเหตุผลที่มันเป็นแพ็คเกจที่แนะนำ)

ดังนั้นผู้ใช้จะไม่เลือกเริ่มต้นเพื่อติดตั้งแพ็คเกจที่แนะนำ (ใน Ubuntu Software Center คุณสามารถเลือกได้โดยการเลือก / ยกเลิกการติดตั้งหรือไม่ติดตั้งแพ็คเกจที่แนะนำ) แต่ในอนาคตเมื่อใช้แอปพลิเคชันของฉัน ฟังก์ชั่นที่เกี่ยวข้อง

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

ฉันต้องการทำสิ่งนี้ผ่านวิธีการเริ่มต้นและโดยเฉพาะอย่างยิ่งวิธีที่ Linux Desktop Environment เป็นอิสระ

ในระยะสั้นฉันต้องการวิธีการติดตั้งแพคเกจจากโปรแกรมของฉันไม่ได้โดยเปิด Ubuntu Software Center (ผ่าน apt: // URL) หรือทำมันที่พื้นหลัง

เป็นการดีที่มันจะเป็นกล่องโต้ตอบเหมือนที่ใช้โดย Update Manager (หรือสำหรับคนที่จำได้จาก Synaptic Package Manager)

PS: ฉันต้องการบางสิ่งที่สามารถนำไปใช้งานได้โดยใช้ C ++!

คำตอบ:


9

หากคุณใช้งานหลามpython-aptdaemon-gtkอาจเป็นวิธีที่ควรทำ สำหรับตัวอย่างที่ดีของวิธีการทำเช่นนี้ดู/usr/share/doc/python-aptdaemon.gtk3widgets/examples/gtk3-demo.py.gz

คุณจะได้รับการติดตั้งที่ดีเช่น:

ติดตั้งพรอมต์

ในกรณีของการใช้ C ++ คุณสามารถใช้อินเทอร์เฟซ AptDaemon D-Bus ได้ แต่ฉันไม่รู้ตัวอย่างและคุณจะไม่ได้รับวิดเจ็ตฟรี

API D-Bus ของ AptDaemon มีการบันทึกไว้ที่นี่: http://packages.python.org/aptdaemon/dbus.html

ฉันไม่สามารถค้นหาบทเรียน C ++ DBus ได้มากนักบนเว็บดังนั้นทางออกที่ดีที่สุดของคุณน่าจะเป็นเอกสารและตัวอย่างในlibdbus-c ++ - docติดตั้ง libdbus-c ++ - doc package


ขอโทษฉันไม่ได้ใช้งูหลาม แต่ฉันชอบมันเป็นทางออก ตัวเลือก C ++ ใด ๆ (ฉันจะแก้ไขคำตอบเพื่อรวมรายละเอียดนี้)
hytromo

อืม ... คุณสามารถใช้อินเทอร์เฟซ AptDaemon D-Bus จาก C ++ ฉันคิดว่า แต่ฉันไม่รู้ตัวอย่างใด ๆ และคุณจะไม่ได้รับเครื่องมือฟรี
andrewsomething

ดี คุณรู้หรือไม่ว่าฉันสามารถค้นหาเอกสารและตัวอย่างของการใช้อินเทอร์เฟซ DBUS นี้ได้ที่ไหน
hytromo

ฉันไม่ต้องการบทช่วยสอนสำหรับการส่งข้อความผ่าน DBus โดยทั่วไป ฉันรู้วิธีการทำสิ่งนี้ ฉันแค่ต้องรู้ว่าข้อความที่จะส่งและที่ไหน!
hytromo

5

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

ฉันคิดว่าพวกเขาใช้sessioninstallerแพ็คเกจเพื่อทำสิ่งนั้น ดูman session-installerและhttps://launchpad.net/sessioninstaller

นอกจากนี้คุณยังสามารถใช้คำสั่งxdg-open apt://package: มันจะเปิดตัวจัดการแพคเกจเริ่มต้นที่มีความเป็นไปได้ที่จะติดตั้งแพคเกจของคุณ (ศูนย์ซอฟต์แวร์ Ubuntu ในรุ่นล่าสุด)


โปรดขยายคำตอบของคุณและรวมถึงรายละเอียดเพิ่มเติมเกี่ยวกับวิธีการทำงานกับตัวติดตั้งเซสชัน สำหรับโซลูชัน xdg-open ฉันได้กล่าวไว้อย่างชัดเจนว่าฉันไม่ต้องการให้พวกเขาเปิดใน USC แต่อย่างที่คุณบอกว่าจะติดตั้งด้วยกล่องโต้ตอบอิสระเช่นเมื่อติดตั้งตัวแปลงสัญญาณใน totem หรือ samba ใน nautilus
hytromo

1

นี่เป็นคำถามเก่า แต่ฉันพบคำตอบapturlแล้ว

มันทำงานได้ดังต่อไปนี้:

apturl apt:packagename และมันคือสิ่งที่ฉันต้องการและสิ่งที่หอยโข่งใช้!

ที่สำคัญมีการติดตั้งไว้ล่วงหน้าใน linux distros :)

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