Ich erstelle eine kleine QT (C ++) - Anwendung, in der ich den Benutzer nach der Software frage, die er installieren möchte. Nachdem er einige Pakete a, b, c aus der Liste ausgewählt hat, muss ich sie nur noch ausführen
sudo apt-get install a b c
Eine Möglichkeit, dies zu tun, besteht darin, Qprocess oder System zu verwenden und diesen Befehl direkt in C ++ auszuführen. Aber ich dachte, dies wäre ein Hack und wollte die apt-pkg C ++ - Bibliothek verwenden. Leider ist die Dokumentation für diese Bibliothek sehr spärlich :( Ich habe Quellcodes ähnlicher Software gesehen - Software-Updater (apt-watch) usw. und fand sie zu komplex. Nur um den obigen Befehl auszuführen, enthält sie viel Code - Initialisierung von pkgCacheFile, PkgIterator , pkgAcqArchive.
Muss ich das alles tun, um diesen einfachen Befehl auszuführen? Gibt es nicht eine direkte Funktion, die den Namen der Software als Argument verwendet und installiert? Wo kann ich einen Beispielarbeitscode dafür bekommen?
quelle
Antworten:
Ich würde nur System verwenden:
Es ist kein Hack, eine einfache Lösung zu verwenden.
quelle
Die Antwort ist
libapt-pkg
. Es ist eine in C geschriebene Bibliothek, die auch über C ++ - Code zugänglich ist.Installieren Sie die Pakete
libapt-pkg-dev
und dielibapt-pkg-doc
jeweils für die Bibliothek und deren Dokumentation.quelle