Installieren Sie ein 'empfohlenes' Paket, wenn der Benutzer nach einer entsprechenden Aktion fragt

10

Nehmen wir an, ich baue eine Anwendung für ein DEB-Paket, das als empfohlene Abhängigkeit ein Paket hat, nennen wir es Paket1.

So kann Paket1, falls installiert, meinem Programm zusätzliche Funktionalität bieten, aber nicht direkt mit der Grundfunktionalität meines Programms zusammenhängen (deshalb ist es ein empfohlenes Paket)

Der Benutzer wählt also zunächst nicht das empfohlene Paket (in Ubuntu Software Center können Sie wählen, ob Sie die empfohlenen Pakete installieren oder nicht installieren möchten), aber in Zukunft, während Sie meine Anwendung verwenden, es fragt nach der entsprechenden Funktionalität.

Was ist der beste Weg, um ihm mitzuteilen, dass ein zusätzliches Paket installiert werden muss, damit diese Funktionalität funktioniert? Welches Programm kann ich verwenden, um dieses Paket direkt von meinem Programm mit einem Dialog zu installieren, der anzeigt, wie der Installationsprozess abläuft?

Ich möchte dies über den Standard-Weg tun, und vorzugsweise eine Art, die unabhängig von Linux Desktop Environment ist.

Kurz gesagt, möchte ich eine Möglichkeit, ein Paket von meinem Programm zu installieren, weder durch Öffnen von Ubuntu Software Center (über eine URL von apt: //), noch indem ich es im Hintergrund mache.

Idealerweise wäre dies ein Dialog, wie er vom Update Manager verwendet wird (oder für diejenigen, die sich daran erinnern, vom Synaptic Package Manager).

PS: Ich würde etwas bevorzugen, das mit C ++ implementiert werden könnte!

    
hytromo 11.08.2012, 22:50

3 Antworten

1

Das ist eine alte Frage, aber ich habe die Antwort gefunden, nämlich apturl .

Es funktioniert wie folgt:

apturl apt:packagename und es ist genau das, was ich brauche und was Nautilus benutzt!

Wichtig, es ist auf vielen Linux Distributionen vorinstalliert:)

    
hytromo 29.12.2012, 23:51
9

Wenn Sie Python verwenden, ist python-aptdaemon-gtk wahrscheinlich der richtige Weg. Ein gutes Beispiel dafür ist /usr/share/doc/python-aptdaemon.gtk3widgets/examples/gtk3-demo.py.gz

Sie erhalten nette Installationsanweisungen wie:

Im Fall der Verwendung von C ++ könnten Sie die AptDaemon D-Bus-Schnittstelle verwenden, aber ich kenne keine Beispiele und Sie würden die Widgets nicht kostenlos erhalten.

Die D-Bus API von AptDaemon ist hier dokumentiert: link

Ich kann nicht viel in der Art von C ++ DBus Tutorials im Web finden, also ist die beste Wette wahrscheinlich die Dokumentation und Beispiele in den libdbus-c ++ - doc Paket.

    
andrewsomething 16.08.2012 00:57
5

Sie könnten ein Beispiel für den Totem-Media-Player nehmen, wenn er den Benutzer auffordert, fehlende Codecs zu installieren, oder wenn Sie die Freigabeoptionen eines Verzeichnisses in Nautilus per Rechtsklick öffnen, fordert er zur Installation von Samba auf.

Ich denke, sie benutzen das Paket sessioninstaller , um das zu tun. Siehe man session-installer und link

Sie können auch den Befehl xdg-open apt://package verwenden: Er öffnet den Standard-Paketmanager mit der Möglichkeit, Ihr Paket zu installieren (ubuntu software center in den letzten Versionen).

    
Marc M 14.08.2012 11:26

Tags und Links