🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.os.linux.debian
Article #147

dpkg

#147
From: Michal Kosek
Date: Thu, 23 Oct 2003 15:29
53 lines
3075 bytes
Hej!

Nie wiem jak wy, ale mi się wydaje, że dpkg to kawał naprawdę
kiepskiego softu. Braku jakiegokolwiek sensownego query, kiepsko
przemyślane parametry i chory sposób prezentacji danych. Najbardziej
dla mnie denerwującą rzeczą jest szybkość - kilkudziesięciosekundowe
czekanie w sytuacji, gdy instalujemy wiele pakietów jest naprawdę
niemiłe.

Zastanawiałem się jak poprawić ten stan, i doszedłem do paru wniosków:

- baza available to jakaś zaszłość - w zasadzie nikt i nic z tego nie
korzysta. I nawet nie powinien - tym jakie są potencjalnie dostępne
pakiety powinno się zajmować narzędzie wyższego rzędu tzn. apt.

- ciężko sobie wyobrazić coś bardziej nieskalowanego niż jeden
ogromniasty plik status, na dokładkę przeszukiwany wielokrotnie(!)
przez głupie dpkg. Aby nie tworzyć jakichś binarnych plików i
niekompatybilnych rozwiązań, najlepiej zrobić rzecz najprostszą - rozbić
plik status na wiele plików [package].status, dzięki czemu będziemy
mieli bardzo szybki dostęp do statusu każdego pakietu.

- trzeba zindeksować zawartość plików *.list, bo grepowanie ich przy
obecnej ilości pakietów trwa zbyt długo (pomijając, że autorzy dpkg
zadbali, aby programi robił jeszcze kilka niepotrzebnych rzeczy, żeby
sromotnie przegrać w czasach nawet z grepem). A, proszę nic nie mówić
o dlocate, to jest obejście problemu, nie rozwiązanie.

- jak już rozbijemy bazę na tyle pliczków, to warto by dorobić jakąś
(opcjonalną) możliwość scalenia ich w jeden duży plik - żeby nie
zmuszać ludzi do marnowania miejsca na dysku...

Na razie załatwiłem dwa pierwsze punkty. Wywaliłem z kodu dpkg
wszystkie odwołania do bazy available (każąc mu w paru miejscach
korzystać z bazy apta) i podzieliłem pliki status. Na resztę jakoś
nie starczyło czasu i chęci :) Efekty, jeśli chodzi o szybkość, są
zauważalne, przynajmniej u mnie:

http://nh.pl/~michau/proj/dpkg/time.txt

Sam patch jest oczywiście tutaj:

http://nh.pl/~michau/proj/dpkg/

Parę maili na debian-dpkg nt. patcha:

http://42.pl/url/i1

-- 
michau@
  Oh no I've set too much / I haven't set enough
  I thought that I straced you sleeping / I thought that I straced you run
  I think I thought I saw core dumped [ R.A.M., "Loosing my revision" ]
Technical Details
Message-ID: <bn8s3v$rhs$1@druid.ceti.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.ceti.pl!not-for-mail

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.ceti.pl!not-for-mail
From: Michal Kosek <michaupiszenanewsy@nowa-huta.krakow.pl>
Newsgroups: pl.comp.os.linux.debian
Subject: dpkg
Date: Thu, 23 Oct 2003 15:29:03 +0000 (UTC)
Organization: CETI S.C. (Krakow, Poland)
Lines: 53
Message-ID: <bn8s3v$rhs$1@druid.ceti.pl>
NNTP-Posting-Host: tau.ceti.pl
Mime-Version: 1.0
X-Trace: druid.ceti.pl 1066922943 28220 62.121.128.11 (23 Oct 2003 15:29:03 GMT)
X-Complaints-To: abuse@ceti.pl
NNTP-Posting-Date: Thu, 23 Oct 2003 15:29:03 +0000 (UTC)
User-Agent: tin/1.5.15-20021115 ("Spiders") (UNIX) (Linux/2.2.23 (i686))
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit