[arch-general] Ye Olde Package Manager

Allan McRae allan at archlinux.org
Sat Jan 15 17:14:13 EST 2011


On 16/01/11 07:34, Brendan Long wrote:
> On 01/13/2011 12:12 PM, C Anthony Risinger wrote:
>> leverage a revisioning system for package files instead of tarballs,
>> even if only locally.  store metadata in a non-relational engine like
>> couchdb (peer replicaition), or at least something like sqlite, for
>> sane access.
>
> A relational engine is actually really helpful for packages. A while ago
> I tried writing a package manager like pacman but using sqlite, and it's
> MUCH faster and still easy to use. The huge pauses every time you need
> metadata are incredibly annoying, and they completely disappear when you
> store things in a real database. The problem is that it has to be used
> by the official package manager, because having package data stored in
> two formats causes issues (because any time you use pacman, the other
> database doesn't know what changed).

It is not so much having the data in a real database, but not having it 
spread over hundreds of small files.  This has been largely fixed in the 
developmental branch of pacman, which is a lot faster.  It could 
probably be improved further, but the complaints to patches ratio is 
really poor.

> Revisioning package files is also interesting; I don't see the point of
> doing it locally though. Once you have the package, installing it is
> fast. Checking if files are the same first seems like a waste of effort.
> There already is a mechanism for creating those .pacnew files (and I
> think auto-merging those into the existing file would mess with the
> "knowing what your system is doing" part of Arch). Using deltas for
> packages would be helpful though, especially in the case of huge
> packages with minor changes.

Using binary deltas has been available in pacman for ages.  Arch just 
does not use them...

Allan


More information about the arch-general mailing list