Buduję małą aplikację QT (C ++), w której pytam użytkownika, jakie oprogramowanie chce zainstalować. Po wybraniu niektórych pakietów a, b, c z listy, wszystko co muszę zrobić, to uruchomić
sudo apt-get install a b c
Jednym ze sposobów na to jest użycie Qprocess lub System i uruchomienie tej komendy bezpośrednio z C ++. Ale myślałem, że to hack i chciałem to zrobić przy użyciu biblioteki C ++ apt-pkg. Niestety dokumentacja dla tej biblioteki jest bardzo rzadka :( Widziałem kody źródłowe niektórych podobnych programów - aktualizator oprogramowania (apt-watch) itp. I uznałem, że jest zbyt skomplikowany. Aby uruchomić powyżej polecenia, ma dużo kodu - Inicjowanie pkgCacheFile, PkgIterator , pkgAcqArchive.
Czy muszę to wszystko zrobić, aby uruchomić to proste polecenie? Czy nie ma bezpośredniej funkcji, która bierze nazwę oprogramowania jako argument i instaluje go? Gdzie mogę uzyskać przykładowy działający kod dla tego samego?
źródło
Odpowiedzi:
Chciałbym tylko użyć systemu:
Korzystanie z prostego rozwiązania nie jest hackowaniem.
źródło
Odpowiedź jest
libapt-pkg
. Jest to biblioteka napisana w C, dzięki czemu jest również dostępna z kodu C ++.Zainstaluj pakiety
libapt-pkg-dev
ilibapt-pkg-doc
odpowiednio dla biblioteki i jej dokumentacji.źródło