Estou construindo um pequeno aplicativo QT (C ++) em que solicito ao usuário o software que ele deseja instalar. Depois que ele selecionou alguns pacotes a, b, c da lista, tudo o que preciso fazer é executar
sudo apt-get install a b c
Uma maneira de fazer isso é usar o Qprocess ou System e executar esse comando diretamente do C ++. Mas eu pensei que isso seria um hack e queria fazer usando a biblioteca C ++ do apt-pkg. Mas infelizmente a documentação é muito escassa para esta biblioteca :( Vi códigos-fonte de alguns softwares semelhantes - Atualizador de software (apt-watch) etc. e achei muito complexo. Apenas para executar o comando acima, ele tem muito código - Inicializando o pkgCacheFile, PkgIterator , pkgAcqArchive.
Eu tenho que fazer tudo isso para executar este comando simples? Não existe uma função direta que pega o nome do software como argumento e o instala? Onde posso obter um exemplo de código de trabalho para o mesmo?
fonte
Respostas:
Eu apenas usaria o sistema:
Não é um truque usar uma solução simples.
fonte
A resposta é
libapt-pkg
. É uma biblioteca escrita em C, que também a torna acessível a partir do código C ++.Instale os pacotes
libapt-pkg-dev
e,libapt-pkg-doc
respectivamente, para a biblioteca e sua documentação.fonte