Я создаю небольшое приложение QT (C ++), где я спрашиваю пользователя, какое программное обеспечение он хочет установить. Как только он выбрал несколько пакетов a, b, c из списка, все, что мне нужно сделать, это запустить
sudo apt-get install a b c
Один из способов сделать это - использовать Qprocess или System и запустить эту команду непосредственно из C ++. Но я подумал, что это будет взломом, и хотел использовать библиотеку apt-pkg C ++. Но, к сожалению, документации для этой библиотеки очень мало :( Я видел исходные коды некоторых подобных программ - Software Updater (apt-watch) и т. Д. И нашел его слишком сложным. Просто чтобы выполнить команду выше, в ней много кода - Инициализация pkgCacheFile, PkgIterator , pkgAcqArchive.
Нужно ли делать все это, чтобы запустить эту простую команду? Нет ли прямой функции, которая принимает имя программного обеспечения в качестве аргумента и устанавливает его? Где я могу получить образец рабочего кода для того же?
источник
Ответы:
Я бы просто использовал систему:
Это не хак, чтобы использовать простое решение.
источник
Ответ есть
libapt-pkg
. Это библиотека, написанная на C, что делает ее также доступной из кода C ++.Установите пакеты
libapt-pkg-dev
иlibapt-pkg-doc
соответственно для библиотеки и ее документации.источник