Saya sedang membangun aplikasi QT (C ++) kecil di mana saya meminta pengguna perangkat lunak yang ingin ia instal. Setelah dia memilih beberapa paket a, b, c dari daftar yang harus saya lakukan adalah menjalankan
sudo apt-get install a b c
Salah satu cara untuk melakukan ini adalah menggunakan Qprocess atau Sistem dan menjalankan perintah ini langsung dari C ++. Tapi saya pikir ini akan menjadi hack dan ingin melakukannya dengan menggunakan apt-pkg C ++ library. Tapi sayangnya dokumentasi sangat jarang untuk perpustakaan ini :( Saya melihat kode sumber dari beberapa software serupa - Software updater (apt-watch) dll dan merasa terlalu kompleks. Hanya untuk menjalankan perintah di atas, ia memiliki banyak kode - Menginisialisasi pkgCacheFile, PkgIterator , pkgAcqArchive.
Apakah saya harus melakukan semua ini untuk menjalankan perintah sederhana ini? Apakah tidak ada fungsi langsung yang menggunakan nama perangkat lunak sebagai argumen dan menginstalnya? Di mana saya bisa mendapatkan contoh kode kerja untuk hal yang sama?
sumber
Jawaban:
Saya hanya akan menggunakan sistem:
Ini bukan peretasan untuk menggunakan solusi sederhana.
sumber
Jawabannya adalah
libapt-pkg
. Ini adalah perpustakaan yang ditulis dalam C, yang membuatnya juga dapat diakses dari kode C ++.Instal paket
libapt-pkg-dev
danlibapt-pkg-doc
masing-masing untuk perpustakaan dan dokumentasinya.sumber