C ++ apt-pkg kitaplığını kullanarak apt-get install <package> eşdeğeri


9

Kullanıcıya yüklemek istediği yazılımı sorduğum küçük bir QT (C ++) uygulaması kuruyorum. Listeden a, b, c paketleri seçtikten sonra tek yapmam gereken

sudo apt-get install a b c

Bunu yapmanın bir yolu Qprocess veya System kullanmak ve bu komutu doğrudan C ++ 'dan çalıştırmaktır. Ama bunun bir hack olacağını düşündüm ve apt-pkg C ++ kütüphanesini kullanarak yapmak istedim. Ama ne yazık ki belgeler bu kütüphane için çok seyrek: Bazı benzer yazılımların kaynak kodlarını gördüm - Yazılım güncelleyici (apt-watch) vb ve çok karmaşık buldum. , pkgAcqArchive.

Bu basit komutu çalıştırmak için tüm bunları yapmak zorunda mıyım? Yazılım adını bağımsız değişken olarak alan ve yükleyen doğrudan bir işlev yok mu? Aynı örnek bir çalışma kodunu nereden alabilirim?


1
Yemin ederim libQapt aradığınız şeydir, ancak bunu doğrulamak için belgelerin eksikliği dezavantajdır. Açıklama " Qt ve C ++ ile yazılmış paket yöneticilerinin gelişimini kolaylaştırmak için" uyar
Braiam

Eğer senin yerinde olsaydım burada yardım isteyecektim: programmers.stackexchange.com
Elder Geek

Bu problem çözüldü mü?
Kayıtlı Kullanıcı

Yanıtlar:


2

Sadece sistemi kullanırdım:

SYSTEM(3)            Linux Programmer's Manual           SYSTEM(3)

NAME
       system - execute a shell command

SYNOPSIS
       #include <stdlib.h>

       int system(const char *command);

DESCRIPTION
       system() executes a command specified in command by calling
       /bin/sh -c command, and returns after the command has  been
       completed.   During  execution of the command, SIGCHLD will
       be blocked, and SIGINT and SIGQUIT will be ignored.

RETURN VALUE
       The value returned is -1 on error (e.g.   fork(2)  failed),
       and  the return status of the command otherwise.  This lat-
       ter return status is in the format  specified  in  wait(2).
       Thus, the exit code of the command will be WEXITSTATUS(sta-
       tus).  In case /bin/sh could not be executed, the exit sta-
       tus will be that of a command that does exit(127).

       If  the  value of command is NULL, system() returns nonzero
       if the shell is available, and zero if not.

       system() does not affect the wait status of any other chil-
       dren.

Basit bir çözüm kullanmak hack değildir.


0

Cevap libapt-pkg. C ile yazılmış bir kütüphanedir ve C ++ kodundan da erişilebilir olmasını sağlar.

Paketleri libapt-pkg-devve libapt-pkg-docsırasıyla kütüphane ve belgeleri için kurun .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.