Article View: pl.comp.os.linux.debian
Article #147dpkg
From: Michal Kosek
Date: Thu, 23 Oct 2003 15:29
Date: Thu, 23 Oct 2003 15:29
53 lines
3075 bytes
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-mailShow 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