उपयोगकर्ता द्वारा संबंधित कार्रवाई के लिए पूछने पर एक 'अनुशंसित' पैकेज स्थापित करें


10

मान लीजिए कि मैं एक DEB पैकेज के लिए एक एप्लिकेशन का निर्माण कर रहा हूं, जिसकी सिफारिश की गई निर्भरता पैकेज के रूप में है, आइए इसे पैकेज 1 कहते हैं।

इसलिए, Package1, यदि स्थापित किया गया है, तो मेरे प्रोग्राम को अतिरिक्त कार्यक्षमता प्रदान कर सकता है, लेकिन सीधे मेरे प्रोग्राम की मूल कार्यक्षमता से संबंधित नहीं है (इसीलिए यह अनुशंसित पैकेज है)

इसलिए, उपयोगकर्ता अनुशंसित पैकेज को स्थापित करने के लिए शुरू में नहीं चुनता है (उबंटू सॉफ्टवेयर सेंटर में आप अनुशंसित पैकेजों को स्थापित करने या स्थापित करने के लिए टिक / अनटैक करके चुन सकते हैं), लेकिन भविष्य में, मेरे आवेदन का उपयोग करते समय, यह मांग करता है इसी कार्यक्षमता।

उसे यह बताने का सबसे अच्छा तरीका क्या है कि इस कार्य के लिए एक अतिरिक्त पैकेज स्थापित किया जाना चाहिए? मेरे प्रोग्राम से सीधे इस पैकेज को स्थापित करने के लिए मैं किस प्रोग्राम का उपयोग कर सकता हूं, यह दर्शाता है कि इंस्टॉलेशन प्रक्रिया कैसे चल रही है?

मैं इसे डिफ़ॉल्ट तरीके से करना चाहता हूं, और, अधिमानतः एक ऐसा तरीका है जो लिनक्स डेस्कटॉप पर्यावरण स्वतंत्र है।

संक्षेप में, मैं अपने प्रोग्राम से न तो उबंटू सॉफ्टवेयर सेंटर (उपयुक्त: // URL) खोलकर और न ही बैकग्राउंड पर इसे स्थापित करने का कोई तरीका चाहता हूं।

आदर्श रूप में, यह एक संवाद की तरह होगा जो कि अद्यतन प्रबंधक द्वारा उपयोग किया जाता है (या, जो याद है, सिनाप्टिक पैकेज प्रबंधक से)।

पुनश्च: मैं कुछ ऐसी चीज़ों को पसंद करूँगा जिन्हें C ++ का उपयोग करके लागू किया जा सके!

जवाबों:


9

यदि आप अजगर का उपयोग कर रहे हैं, python-aptdaemon-gtkतो शायद जाने का रास्ता है। ऐसा कैसे करें के एक अच्छे उदाहरण के लिए, देखें/usr/share/doc/python-aptdaemon.gtk3widgets/examples/gtk3-demo.py.gz

आपको इस तरह के अच्छे संकेत मिलते हैं:

शीघ्र स्थापित करें

C ++ का उपयोग करने के मामले में, आप AptDaemon D-Bus इंटरफ़ेस का उपयोग कर सकते हैं, लेकिन मुझे किसी भी उदाहरण का पता नहीं है और आपको मुफ्त में विजेट नहीं मिलेंगे।

AptDaemon का D- बस एपीआई यहां प्रलेखित है: http://packages.python.org/aptdaemon/dbus.html

मुझे वेब पर C ++ DBus ट्यूटोरियल्स के तरीके में बहुत कुछ नहीं मिल रहा है, इसलिए आपका सबसे अच्छा दांव शायद libdbus-c ++ - docLibdbus-c ++ - doc इंस्टॉल करें पैकेज में प्रलेखन और उदाहरण हैं ।


क्षमा करें, मैं अजगर का उपयोग नहीं कर रहा हूं, लेकिन मैं इसे एक समाधान के रूप में पसंद करता हूं। कोई भी C ++ विकल्प (मैं इस विवरण को शामिल करने के लिए अपना उत्तर संपादित करूंगा)?
hytromo

हम्म ... आप सी + + से AptDaemon डी-बस इंटरफ़ेस का उपयोग कर सकते हैं, मुझे लगता है, लेकिन मुझे किसी भी उदाहरण का पता नहीं है और आपको मुफ्त में विजेट्स नहीं मिलेंगे।
andrewsomething

अच्छा लगा। क्या आप जानते हैं कि मैं इस DBUS इंटरफ़ेस का उपयोग करके दस्तावेज़ और उदाहरण कहाँ पा सकता हूँ?
hytromo

मुझे वास्तव में DBus के माध्यम से संदेश भेजने के लिए ट्यूटोरियल की आवश्यकता नहीं है। मुझे पता है कि यह कैसे करना है। मुझे सिर्फ यह जानना है कि क्या संदेश भेजें और कहां भेजें!
hytromo

5

आप टोटेम मीडिया प्लेयर पर उदाहरण ले सकते हैं जब यह उपयोगकर्ता को लापता कोडेक्स स्थापित करने के लिए प्रेरित करता है, या जब आप राइट क्लिक के माध्यम से नॉटिलस में एक निर्देशिका के शेयर विकल्प खोलते हैं, तो यह सांबा स्थापित करने का संकेत देता है।

मुझे लगता है कि वे ऐसा करने के लिए sessioninstallerपैकेज का उपयोग करते हैं। देखें man session-installer, और https://launchpad.net/sessioninstaller

आप कमांड का उपयोग भी कर सकते हैं xdg-open apt://package: यह आपके पैकेज को स्थापित करने की संभावना के साथ डिफ़ॉल्ट पैकेज प्रबंधक खोलेगा (हाल के रिलीज में ubuntu सॉफ्टवेयर सेंटर)।


कृपया अपने उत्तर का विस्तार करें और सत्र-इंस्टॉलर के साथ काम करने के तरीके पर अधिक विवरण शामिल करें। के रूप में xdg- खुले समाधान के लिए, मैंने स्पष्ट रूप से उल्लेख किया है कि मैं उन्हें यूएससी में नहीं खोलना चाहता, लेकिन, जैसा कि आपने कहा, एक स्वतंत्र संवाद स्थापित करने के लिए, जैसे टोटेम या सांबा में नॉटिलस में कोडेक्स स्थापित करते समय।
hytromo

1

यह एक पुराना प्रश्न है लेकिन मुझे इसका उत्तर मिल गया है, जो कि है apturl

यह निम्नानुसार काम करता है:

apturl apt:packagename और यह वही है जो मुझे चाहिए और क्या नॉटिलस उपयोग करता है!

महत्वपूर्ण रूप से, यह कई लिनक्स डिस्ट्रो पर पहले से उपलब्ध है :)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.