[C/C++] Integracja z APT
- DNADesigNed
- 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
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ć?
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/
Piotr "MoroS" Mrożek - http://dnadesign.pl/
-
- 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
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

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

- DNADesigNed
- 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
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ć.

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/
Piotr "MoroS" Mrożek - http://dnadesign.pl/
-
- 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
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
Tak sobie pomyślałem

- DNADesigNed
- 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
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).


PS. To nie będzie kolejny menadżer pakietów Ubuntu (tak jakby).

Pozdrawiam
Piotr "MoroS" Mrożek - http://dnadesign.pl/
Piotr "MoroS" Mrożek - http://dnadesign.pl/
- el.pescado
- 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
W takim wypadku wystarczy zwykłePóki co nie planuję pisania aplikacji okienkowej, tylko konsolową, więc chwilowo nie będę musiał zajmować się tym zagadnieniem
Kod: Zaznacz cały
system ("apt-get install xbill");

- DNADesigNed
- 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
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.el.pescado pisze:W takim wypadku wystarczy zwykłeKod: Zaznacz cały
system ("apt-get install xbill");
Pozdrawiam
Piotr "MoroS" Mrożek - http://dnadesign.pl/
Piotr "MoroS" Mrożek - http://dnadesign.pl/
-
- 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
Polecenie system przeważnie jest złym rozwiązaniem. Lepiej użyć coś z rodziny exec, daje to większą kontrolę nad uruchamianym programem.
- DNADesigNed
- 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
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.
Muszę mieć w miarę pełną kontrolę nad APT'em.
Pozdrawiam
Piotr "MoroS" Mrożek - http://dnadesign.pl/
Piotr "MoroS" Mrożek - http://dnadesign.pl/
- el.pescado
- 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
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.
Kto jest online
Użytkownicy przeglądający to forum: Bing [Bot] i 10 gości