[C/C++] Integracja z APT

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
Awatar użytkownika
DNADesigNed
Sędziwy Jeż
Sędziwy Jeż
Posty: 84
Rejestracja: 30 sie 2007, 17:01
Płeć: Mężczyzna
Wersja Ubuntu: 12.04
Środowisko graficzne: LXDE
Architektura: x86
Kontakt:

[C/C++] Integracja z APT

Post autor: DNADesigNed »

Witam wszystkich,
Chciałem się zapytać, czy nie dysponuje ktoś może jakimiś informacjami/materiałami na temat integracji oprogramowania z Advanced Packaging Tool (APT, najlepiej w C/C++). Nie chodzi mi o to, jak robić paczki, czy coś w tym stylu, tylko o to, jak sterować procesem zarządzania pakietami z zewnętrznego oprogramowania (coś w stylu synaptic, dselect, itp.).

Próbował ktoś już coś takiego robić?
Pozdrawiam
Piotr "MoroS" Mrożek - http://dnadesign.pl/
gril
Sędziwy Jeż
Sędziwy Jeż
Posty: 39
Rejestracja: 09 lis 2008, 00:47
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: GNOME

Odp: [C/C++] Integracja z APT

Post autor: gril »

Nie znam się na tym, ale jeżeli google nic na ten temat nie mowi (?) to przejrzał bym źródła synaptica :)

Polecenie "ldd synapic" pokazuje, że program ten korzysta z libapt-pkg-libc6.3-6.so.3.11 i libapt-inst-libc6.3-6.so.1.1. Może coś Ci to pomoże :)
Awatar użytkownika
DNADesigNed
Sędziwy Jeż
Sędziwy Jeż
Posty: 84
Rejestracja: 30 sie 2007, 17:01
Płeć: Mężczyzna
Wersja Ubuntu: 12.04
Środowisko graficzne: LXDE
Architektura: x86
Kontakt:

Odp: [C/C++] Integracja z APT

Post autor: DNADesigNed »

Dzięki gril, pomogło bardzo. :)

Szczerze mówiąc nie pomyślałem o ldd, ale dzięki temu przynajmniej wiem do czego się wpiąć. Ogólnie z tego, co już wyszukałem udało mi się dowiedzieć, że nie ma ujednoliconej dokumentacji do API apt'a. Jest też projekt libapt-front, który próbuje wystawić API do apt'a w formie nieco bardziej zrozumiałej dla przeciętnego programisty, ale odpuszczę sobie. Czas zajrzeć w źródełka. :)

Myślę, że pokuszę się o napisania czegoś w rodzaju dokumentacji do API apt'a, przynajmniej w takiej formie, w jakiej uda mi się owe API poznać. :)
Pozdrawiam
Piotr "MoroS" Mrożek - http://dnadesign.pl/
gril
Sędziwy Jeż
Sędziwy Jeż
Posty: 39
Rejestracja: 09 lis 2008, 00:47
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: GNOME

Odp: [C/C++] Integracja z APT

Post autor: gril »

Przyszła mi jeszcze pewna myśl. Mianowicie za każdym razem jak widzę pracę z pakietami w programie (czy to instalacja, czy inne operacja) zawsze jest dostępny podgląd terminala. Może warto przyjrzeć się jak stworzyć shella, odpalić polecenie i automatycznie przekazać jakieś polecenie?

Tak sobie pomyślałem :)
Awatar użytkownika
DNADesigNed
Sędziwy Jeż
Sędziwy Jeż
Posty: 84
Rejestracja: 30 sie 2007, 17:01
Płeć: Mężczyzna
Wersja Ubuntu: 12.04
Środowisko graficzne: LXDE
Architektura: x86
Kontakt:

Odp: [C/C++] Integracja z APT

Post autor: DNADesigNed »

Póki co nie planuję pisania aplikacji okienkowej, tylko konsolową, więc chwilowo nie będę musiał zajmować się tym zagadnieniem. Jednak jak skończę już prace nad aplikacją konsolową, to i okienkową przyda się napisać, a wtedy podgląd terminala będzie jak najbardziej wskazany. :) Dzięki gril. :)

PS. To nie będzie kolejny menadżer pakietów Ubuntu (tak jakby). ;)
Pozdrawiam
Piotr "MoroS" Mrożek - http://dnadesign.pl/
Awatar użytkownika
el.pescado
Zakręcona Traszka
Zakręcona Traszka
Posty: 734
Rejestracja: 26 maja 2005, 11:43
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

Odp: [C/C++] Integracja z APT

Post autor: el.pescado »

Póki co nie planuję pisania aplikacji okienkowej, tylko konsolową, więc chwilowo nie będę musiał zajmować się tym zagadnieniem
W takim wypadku wystarczy zwykłe

Kod: Zaznacz cały

system ("apt-get install xbill");
;)
Awatar użytkownika
DNADesigNed
Sędziwy Jeż
Sędziwy Jeż
Posty: 84
Rejestracja: 30 sie 2007, 17:01
Płeć: Mężczyzna
Wersja Ubuntu: 12.04
Środowisko graficzne: LXDE
Architektura: x86
Kontakt:

Odp: [C/C++] Integracja z APT

Post autor: DNADesigNed »

el.pescado pisze:W takim wypadku wystarczy zwykłe

Kod: Zaznacz cały

system ("apt-get install xbill");
;)
Sprawa nie jest aż tak prosta, bo poza samą możliwością instalacji pakietów, potrzebuję jeszcze kontroli zależności, sprawdzania, czy dany pakiet już istnieje, no i przede wszystkim obsługi zdarzeń zgłaszanych przez APT, więc zasadniczo będę musiał zintegrować się z libapt, żeby uzyskać możliwie pełną kontrolę nad tym narzędziem.
Pozdrawiam
Piotr "MoroS" Mrożek - http://dnadesign.pl/
gril
Sędziwy Jeż
Sędziwy Jeż
Posty: 39
Rejestracja: 09 lis 2008, 00:47
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: GNOME

Odp: [C/C++] Integracja z APT

Post autor: gril »

Polecenie system przeważnie jest złym rozwiązaniem. Lepiej użyć coś z rodziny exec, daje to większą kontrolę nad uruchamianym programem.
Awatar użytkownika
DNADesigNed
Sędziwy Jeż
Sędziwy Jeż
Posty: 84
Rejestracja: 30 sie 2007, 17:01
Płeć: Mężczyzna
Wersja Ubuntu: 12.04
Środowisko graficzne: LXDE
Architektura: x86
Kontakt:

Odp: [C/C++] Integracja z APT

Post autor: DNADesigNed »

Tak, ale wole mimo wszystko podłączyć się do biblioteki. Nie będę musiał w ten sposób polegać ani na system, ani na innych sposobach uruchamiania programów.
Muszę mieć w miarę pełną kontrolę nad APT'em.
Pozdrawiam
Piotr "MoroS" Mrożek - http://dnadesign.pl/
Awatar użytkownika
el.pescado
Zakręcona Traszka
Zakręcona Traszka
Posty: 734
Rejestracja: 26 maja 2005, 11:43
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

Odp: [C/C++] Integracja z APT

Post autor: el.pescado »

System jest tak dla przykładu - przykład straciłby na czytelności, gdybym użył wszystkich forków i execów. Ale skoro problem jest bardziej skomplikowany, to chyba nie zostaje nic innego jak skorzystanie z libapt.
ODPOWIEDZ

Wróć do „Programowanie”

Kto jest online

Użytkownicy przeglądający to forum: Bing [Bot] i 10 gości