Raport o postępie prac nad projektem APT2

Julian Andres Klode opisał na swoim blogu postępy prac nad projektem APT2 — nową implementacją debianowego menedżera pakietów, o której pisaliśmy niedawno. Najważniejsze zmiany to m.in.: nowa licencja, użycie SQLite jako bazy danych oraz tekstowa aplikacja kliencka capt.

Ostatni tydzień był bardzo owocny dla projektu. Klode zmienił implementację biblioteki HTTP — zamiast dotychczasowego GIO i GVFS, APT2 używa teraz bezpośrednio libsoup2.4. Dodał też analizator składni sources.list używający wyrażeń regularnych, który jest względnie szybki. Nowy kod wymaga do poprawnej pracy aktualnej wersji języka Vala z repozytorium git, ponieważ ostatnio wydana wersja zawiera błąd zauważony podczas prac na projektem APT2.

Zmianie uległa też licencja — APT2 udostępniony jest teraz na licencji LGPL 2.1+, co ułatwi dwukierunkową wymianę kodu z innymi projektami.

Więcej zmian znalazło się w niepublicznej gałęzi. APT2 wykorzystuje SQLite 3 jako bazę danych, przetwarza tekst za pomocą Acquire, dodany został tekstowy klient capt. Większość kodu wymagać będzie dodatkowych prac przed opublikowaniem, Klode ma nadzieję, że uda się to zrobić przed świętami. Nowa wersja wymagać będzie wydania 0.7.9 (lub wyższej) języka Vala, które jeszcze nie jest dostępne.

Decyzja o użyciu SQLite 3 oznacza, że APT2 nie będą dotyczyć ograniczenia rozmiaru, jak w przypadku APT-a, oraz rozwój projektu będzie uproszczony, dzięki możliwości użycia zapytań SQL. Ponadto SQLite uczyni APT2 bardzo szybki w większości zadań, jak np. wyszukiwanie. Klode przeprowadził testy szybkości wyszukiwania (przy włączonych repozytoriach unstable, experimetnal i innych), już teraz APT2 jest najszybszy:

  • APT2: 0,1240 sekundy
  • aptitude: 1,101 sekundy
  • cupt (który nie używa dyskowej pamięci podręcznej): 1,292 sekundy
  • apt-cache: 0,475 sekundy

Wyszukiwanie w APT2 jest wykonywane za pomocą pojedynczego zapytania SQL.

Tekstowa aplikacja capt posiada dwa interfejsy — tryb wsadowy:

$ capt search python-apt
build-depends-python-apt - Dummy package to fulfill package dependencies
python-apt - Python interface to libapt-pkg
python-apt-dbg - Python interface to libapt-pkg (debug extension)
python-apt-dev - Python interface to libapt-pkg (development files)
python-aptdaemon - Python module for the server and client of aptdaemon
python-aptdaemon-gtk - Python GTK+ widgets to run an aptdaemon client

oraz pseudopowłokę (jak np. aptsh lub poldek z PLD):

jak@hp:~/Desktop/APT2:temp$ capt
apt$ help
APT2 0.0.20091213 command-line frontend

Commands:
  config dump               Dump the configuration
  config get OPTION         Get the given option
  config set OPTION VALUE   Set the given option
  search EXPRESSION         Search for the given expression
  show PACKAGE              Show all versions of the given package
  sources list              Print a list of all sources
  version                   Print the version of APT2
apt$ search python-apt
build-depends-python-apt - Dummy package to fulfill package dependencies
python-apt - Python interface to libapt-pkg
python-apt-dbg - Python interface to libapt-pkg (debug extension)
python-apt-dev - Python interface to libapt-pkg (development files)
python-aptdaemon - Python module for the server and client of aptdaemon
python-aptdaemon-gtk - Python GTK+ widgets to run an aptdaemon client
apt$

capt będzie jedynym programem dostępnym w podstawowej dystrybucji APT2. Posiadał będzie taką samą funkcjonalność jak apt-get, apt-config i spółka. Nazwa nie jest idealna, ponieważ może być mylona z cupt, jednak na razie — ponieważ nazwa apt jest już zajęta przez Javę (przez Annotation Processing Tool) — była pierwszą, która przyszła autorowi na myśl.

Julian Andres Klode powiadomi kiedy opisane nowości zostaną udostępnione. Tymczasem zaprasza osoby zainteresowane do dyskusji na temat systemu rozwiązywania zależności, struktury bazy danych i innych rzeczy w odpowiednim wątku na liście dyskusyjnej APT-a.

Źródło: juliank.wordpress.com/2009/12/13/apt2-progress-report-for-the-1st-half-of-december/

Dodany: 14 gru 2009 o 10:55
przez: azhag

OSnews Wykop Blip Flaker Kciuk Śledzik Facebook Identi.ca Twitter del.icio.us Google Bookmarks

Komentarze (RSS):

  • Nie dodano jeszcze żadnych komentarzy

  • Aby dodać komentarz Zaloguj się lub Zarejestruj