Angenommen, ich erstelle eine Anwendung für ein DEB-Paket, das als empfohlene Abhängigkeit ein Paket aufweist. Nennen wir es package1.
Wenn also Paket1 installiert ist, kann es meinem Programm zusätzliche Funktionen bieten, die jedoch nicht direkt mit den Grundfunktionen meines Programms zusammenhängen (daher ist es ein empfohlenes Paket).
Der Benutzer entscheidet sich also zunächst nicht für die Installation des empfohlenen Pakets (im Ubuntu Software Center können Sie auswählen, ob die empfohlenen Pakete installiert oder nicht installiert werden sollen), sondern in Zukunft, während er meine Anwendung verwendet die entsprechende Funktionalität.
Wie kann ich ihm am besten sagen, 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 aus zu installieren. Ein Dialogfeld zeigt an, wie der Installationsprozess abläuft.
Ich möchte dies über die Standardmethode tun, vorzugsweise über eine Methode, die unabhängig von der Linux-Desktop-Umgebung ist.
Kurz gesagt, ich möchte eine Möglichkeit, ein Paket aus meinem Programm zu installieren, weder durch Öffnen des Ubuntu Software Centers (über eine apt: // URL) noch im Hintergrund.
Im Idealfall handelt es sich um ein Dialogfeld, wie es vom Update Manager (oder für diejenigen, die sich daran erinnern, vom Synaptic Package Manager) verwendet wird.
PS: Ich würde etwas bevorzugen, das mit C ++ implementiert werden könnte!
quelle
Sie können ein Beispiel für den Totem Media Player nehmen, wenn der Benutzer aufgefordert wird, fehlende Codecs zu installieren, oder wenn Sie die Freigabeoptionen eines Verzeichnisses in nautilus per Rechtsklick öffnen, wird er aufgefordert, Samba zu installieren.
Ich denke, sie benutzen das
sessioninstaller
Paket, um das zu tun. Sieheman session-installer
und https://launchpad.net/sessioninstallerSie können auch den folgenden Befehl verwenden
xdg-open apt://package
: Er öffnet den Standard-Paketmanager mit der Möglichkeit, Ihr Paket zu installieren (Ubuntu Software Center in neueren Versionen).quelle
Dies ist eine alte Frage, aber ich habe die Antwort gefunden
apturl
.Es funktioniert wie folgt:
apturl apt:packagename
und genau das brauche ich und was nautilus benutzt!Wichtig ist, dass es auf vielen Linux-Distributionen vorinstalliert verfügbar ist :)
quelle