Kullanıcı ilgili işlemi istediğinde 'önerilen' bir paket yükleyin


10

Diyelim ki bir bağımlılık olarak önerilen bir pakete sahip bir DEB paketine bir uygulama geliştiriyorum, buna package1 diyelim.

Bu nedenle, package1, yüklüyse, programıma ekstra işlevsellik sağlayabilir, ancak doğrudan programımın temel işlevselliğiyle ilgili değildir (bu yüzden önerilen bir pakettir)

Bu nedenle, kullanıcı başlangıçta önerilen paketi yüklemeyi seçmez (Ubuntu Yazılım Merkezi'nde önerilen paketleri yüklemek veya yüklemeyi seçerek seçebilirsiniz), ancak gelecekte, uygulamamı kullanırken, karşılık gelen işlevsellik.

Bu işlevin çalışması için ona fazladan bir paketin yüklenmesi gerektiğini söylemenin en iyi yolu nedir? Yükleme işleminin nasıl gittiğini gösteren bir iletişim kutusu ile bu paketi doğrudan programımdan yüklemek için hangi programı kullanabilirim?

Bunu varsayılan yolla ve tercihen Linux Masaüstü Ortamından bağımsız olan bir yolla yapmak istiyorum.

Kısacası, Ubuntu Yazılım Merkezi'ni (apt: // URL aracılığıyla) açarak veya arka planda yaparak programımdan bir paket kurmanın bir yolunu istiyorum.

İdeal olarak, Güncelleme Yöneticisi (veya Synaptic Paket Yöneticisi'nden hatırlayanlar için) tarafından kullanılan gibi bir iletişim kutusu olacaktır.

PS: C ++ kullanarak uygulanabilecek bir şey tercih ederim!

Yanıtlar:


9

Python kullanıyorsanız python-aptdaemon-gtk, muhtemelen gitmek için bir yoldur. Bunun nasıl yapılacağına dair iyi bir örnek için,/usr/share/doc/python-aptdaemon.gtk3widgets/examples/gtk3-demo.py.gz

Aşağıdaki gibi güzel kurulum istemleri alırsınız:

yükleme istemi

C ++ kullanılması durumunda, AptDaemon D-Bus arayüzünü kullanabilirsiniz, ancak herhangi bir örnek bilmiyorum ve widget'ları ücretsiz olarak alamazsınız.

AptDaemon'un D-Bus API'sı burada belgelenmiştir: http://packages.python.org/aptdaemon/dbus.html

Web üzerinde C ++ DBus öğreticiler yolunda fazla bulamıyorum, bu yüzden en iyi bahis muhtemelen belge ve libdbus-c ++ - docLibdbus-c ++ yükleyin - doc paketinde örnekleri .


üzgünüm, python kullanmıyorum ama bir çözüm olarak beğendim. Herhangi bir C ++ alternatifi (cevabımı bu ayrıntıyı içerecek şekilde düzenleyeceğim)?
hytromo

Hmm ... Sanırım C ++ AptDaemon D-Bus arayüzünü kullanabilirsiniz, ancak herhangi bir örnek bilmiyorum ve widget'ları ücretsiz alamazsınız.
andrewsomething

Güzel. Bu DBUS arabirimini kullanma ile ilgili belgeleri ve örnekleri nerede bulabileceğimi biliyor musunuz?
hytromo

Genel olarak DBus üzerinden mesaj göndermek için gerçekten bir eğiticiye ihtiyacım yok. Bunu nasıl yapacağımı biliyorum. Sadece hangi mesajları ve nereye göndereceğimi bilmem gerek!
hytromo

5

Totem medya oynatıcısında kullanıcıdan eksik kodekleri yüklemesini istediğinde veya nautilus'ta bir dizinin paylaşım seçeneklerini sağ tıklatmayla açtığınızda örnek olabilir, samba'yı yüklemeniz istenir.

Bunu sessioninstalleryapmak için paketi kullandıklarını düşünüyorum . Bkz man session-installer. Ve https://launchpad.net/sessioninstaller

Komutu da kullanabilirsiniz xdg-open apt://package: paketinizi yükleme olanağına sahip varsayılan paket yöneticisini açar (son sürümlerde ubuntu yazılım merkezi).


Lütfen yanıtınızı genişletin ve oturum yükleyiciyle nasıl çalışılacağı hakkında daha fazla ayrıntı ekleyin. Xdg-open çözümüne gelince, USC'de açılmalarını istemediğimi, ancak belirttiğiniz gibi, totem'e codec'leri veya nautilus'ta samba'yı kurarken olduğu gibi bağımsız bir diyalogla yüklemeyi açık bir şekilde belirtmiştim.
hytromo

1

Bu eski bir soru ama cevabı buldum apturl.

Aşağıdaki gibi çalışır:

apturl apt:packagename ve tam da ihtiyacım olan şey ve nautilus ne kullanıyor!

Önemlisi, birçok linux dağıtımına önceden yüklenmiş olarak mevcuttur :)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.