ব্যবহারকারী সম্পর্কিত ক্রিয়া জিজ্ঞাসা করলে একটি 'প্রস্তাবিত' প্যাকেজ ইনস্টল করুন


10

ধরা যাক যে আমি একটি ডিইবি প্যাকেজে একটি অ্যাপ্লিকেশন তৈরি করছি, যার মধ্যে নির্ভরযোগ্যতা হিসাবে একটি প্যাকেজ রয়েছে, আসুন একে প্যাকেজ 1 বলুন।

সুতরাং, প্যাকেজ 1, ইনস্টল করা থাকলে, আমার প্রোগ্রামগুলিতে অতিরিক্ত কার্যকারিতা সরবরাহ করতে পারে, তবে আমার প্রোগ্রামের মূল কার্যকারিতার সাথে সরাসরি সম্পর্কিত নয় (এজন্য এটি প্রস্তাবিত প্যাকেজ)

সুতরাং, ব্যবহারকারী প্রস্তাবিত প্যাকেজ ইনস্টল করার জন্য প্রাথমিকভাবে বাছাই করেন না (উবুন্টু সফটওয়্যার সেন্টারে আপনি প্রস্তাবিত প্যাকেজগুলি ইনস্টল করতে বা ইনস্টল করার জন্য টিক টিকিয়ে / অনটিক্স দ্বারা বেছে নিতে পারেন) তবে ভবিষ্যতে আমার অ্যাপ্লিকেশনটি ব্যবহার করার সময় এটি জিজ্ঞাসা করে সংশ্লিষ্ট কার্যকারিতা।

এই ক্রিয়াকলাপটি কাজ করার জন্য একটি অতিরিক্ত প্যাকেজ ইনস্টল করতে হবে তা জানার সর্বোত্তম উপায় কী? আমার প্রোগ্রাম থেকে সরাসরি এই প্যাকেজটি ইনস্টল করার জন্য আমি কোন প্রোগ্রামটি ব্যবহার করতে পারি যে ইন্সটলেশন প্রক্রিয়াটি কীভাবে চলছে তা নির্দেশ করে?

আমি এটি ডিফল্ট উপায়ে এবং বেশিরভাগভাবে লিনাক্স ডেস্কটপ এনভায়রনমেন্ট ইন্ডিপেন্ডেশন দিয়ে করতে চাই।

সংক্ষেপে, আমি আমার প্রোগ্রাম থেকে একটি প্যাকেজ ইনস্টল করার উপায় চাই না উবুন্টু সফ্টওয়্যার কেন্দ্র না খোলার মাধ্যমে (একটি অ্যাপল: // ইউআরএল মাধ্যমে) বা ব্যাকগ্রাউন্ডে না করে।

আদর্শভাবে, এটি আপডেট ম্যানেজারের (অথবা, সিনাপটিক প্যাকেজ ম্যানেজার থেকে মনে রাখে এমনদের জন্য) ব্যবহার করা ডায়ালগের মতো হবে।

PS: আমি এমন কিছু পছন্দ করব যা সি ++ ব্যবহার করে প্রয়োগ করা যেতে পারে!

উত্তর:


9

আপনি যদি অজগর ব্যবহার করেন python-aptdaemon-gtkতবে সম্ভবত এটি যাওয়ার উপায়। এটি কীভাবে করা যায় তার একটি ভাল উদাহরণের জন্য, দেখুন/usr/share/doc/python-aptdaemon.gtk3widgets/examples/gtk3-demo.py.gz

আপনি সুন্দর ইনস্টলের অনুরোধগুলি পান যেমন:

প্রম্পট ইনস্টল করুন

সি ++ ব্যবহারের ক্ষেত্রে আপনি অ্যাপটেমোন ডি-বাস ইন্টারফেসটি ব্যবহার করতে পারেন তবে আমি কোনও উদাহরণ জানি না এবং আপনি উইজেটগুলি বিনামূল্যে পাবেন না।

অ্যাপটেমোনের ডি-বাস এপিআই এখানে নথিভুক্ত করা হয়েছে: http://packages.python.org/aptdaemon/dbus.html

ওয়েবে C ++ DBus টিউটোরিয়ালগুলির মতো আমি খুব বেশি খুঁজে পাচ্ছি না, তাই আপনার সেরা বেটটিLibdbus-c ++ - ডক ইনস্টল করুন সম্ভবত লিডবাস-সি ++ - ডক প্যাকেজের ডকুমেন্টেশন এবং উদাহরণ is


দুঃখিত, আমি পাইথন ব্যবহার করছি না, তবে সমাধান হিসাবে এটি পছন্দ করি। যে কোনও সি ++ বিকল্প (আমি আমার উত্তরটি সম্পাদনা করব যাতে এই বিশদটি অন্তর্ভুক্ত করা যায়)?
হাইট্রোমো

হুম ... আপনি মনে করেন আপনি সি ++ থেকে অ্যাপটেমোন ডি-বাস ইন্টারফেসটি ব্যবহার করতে পারেন, তবে আমি কোনও উদাহরণ জানি না এবং আপনি উইজেটগুলি বিনামূল্যে পাবেন না।
andreswsomething

খুশী হলাম। আপনি কি জানেন যে আমি এই ডিবাস ইন্টারফেসটি ব্যবহার করার নথিপত্র এবং উদাহরণগুলি কোথায় পাব?
হাইট্রোমো

সাধারণভাবে সাধারণত ডিবিসের মাধ্যমে বার্তা প্রেরণের জন্য আমার টিউটোরিয়ালটির দরকার নেই। আমি এটি কিভাবে জানি। আমাকে কেবল কী বার্তা প্রেরণ করতে হবে এবং কোথায় জানতে হবে!
হাইট্রোমো

5

আপনি টোটেম মিডিয়া প্লেয়ারটিতে উদাহরণটি নিতে পারেন যখন এটি ব্যবহারকারীকে অনুপস্থিত কোডেকগুলি ইনস্টল করার জন্য অনুরোধ করে, বা আপনি ডান ক্লিকের মাধ্যমে নটিলাসে কোনও ডিরেক্টরি শেয়ার করার বিকল্পটি স্যাম্বা ইনস্টল করার অনুরোধ জানায়।

আমি মনে করি তারা এটি করতে sessioninstallerপ্যাকেজটি ব্যবহার করে । দেখুন man session-installerএবং https://launchpad.net/sessioninstaller

আপনি কমান্ডটিও ব্যবহার করতে পারেন xdg-open apt://package: এটি আপনার প্যাকেজ ইনস্টল করার সম্ভাবনা সহ ডিফল্ট প্যাকেজ ম্যানেজারটি খুলবে (সাম্প্রতিক প্রকাশগুলিতে উবুন্টু সফ্টওয়্যার কেন্দ্র)।


আপনার উত্তরটি প্রসারিত করুন এবং সেশন-ইনস্টলার সহ কীভাবে কাজ করবেন সে সম্পর্কে আরও বিশদ অন্তর্ভুক্ত করুন। এক্সডিজি-ওপেন সমাধানের জন্য, আমি স্পষ্টভাবে উল্লেখ করেছি যে আমি তাদের ইউএসসিতে খুলতে চাই না, তবে যেমনটি আপনি বলেছেন, একটি স্বতন্ত্র ডায়ালগ দিয়ে ইনস্টল করার জন্য, যেমন নোটিলাসে টোটেম বা সাম্বায় কোডেক ইনস্টল করার সময়।
হাইট্রোমো

1

এটি একটি পুরানো প্রশ্ন তবে আমি উত্তরটি পেয়েছি, যা apturl

এটি নিম্নলিখিত হিসাবে কাজ করে:

apturl apt:packagename এবং এটি ঠিক আমার প্রয়োজন এবং নটিলাস কী ব্যবহার করে!

গুরুত্বপূর্ণভাবে, এটি অনেকগুলি লিনাক্স ডিস্ট্রোতে প্রাক ইনস্টলড পাওয়া যায় :)

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.