The poldek is the RPM packages management helper tool; its basic features are similar to every modern package updater like apt-get -- the program takes information about packages from package index file (packages.dir.gz by default) and allows packaging installation, upgrading and removal. Package dependencies are automatically handled, so if you need to install a package which requires other packages to be installed, poldek downloads and installs all the required packages by itself.
Main poldek's advantages are:
Package dependencies, conflicts and setting in order are handled by poldek itself without using rpmlib, so the program is significantly faster and uses less memory than rpmlib-based tools.
Before their installation packages are divided into small groups, usually from 2 to 10 items (depending on their reciprocal dependencies). Each group is installed separately, which ensures that unsucessful installation of one of the groups doesn't influence other groups.
Another benefit of this separate installation is that it requires less memory and disk space than the usual one.
The poldek can work in two modes: a batch mode (in use similar to apt-get one) and interactive one. The interactive mode puts the user into a readline interface with command line auto-completion and history. In this mode the user is able to browse, search, download, install/upgrade and deinstall packages. In its concept it is similar to shell mode of Perl's CPAN module (see sample interactive mode session).
During this type of install packages are downloaded and installed separately, so used memory size is independent of number of packages intended to install. Program is used by PLD Installer
Feature is useful for distribution maintainers; see sample report.
Program divide packages in the way that minimize needs of disk changes; for example if distribution fits on 3 CDs, then only 2 changes of CD disk are necessary during installation system from scratch. This feature is used for making PLD CD ISO images, see geniso-poldek script for details.
To save users time and bandwidth program supports "incremental indexes" which is very useful with repositories which frequently change. This feature consist in creation "patches" of index which gives the users possibility to update local index by download "patch" with information of changes only.
$ poldek -s DIR --mkidxz
As result several files will be created under DIR:
Additionally if previous DIR/packages.dir.gz is different from currently created one then index "patch" is created under DIR/packages.i/
Example:
$ poldek -s /home/ftp/pub/PLD/RPMS --mkidxz
Loading /home/ftp/pub/PLD/RPMS/...200..400..600..800..1000..1200..1400..1600
..1800..2000..2200..2400..2600..2800..3000..3063
3063 packages read
Loading previous /home/ftp/pub/PLD/RPMS/packages.dir.gz...
Verifying /home/ftp/pub/PLD/RPMS/packages.dir.gz... OK
Writing /home/ftp/pub/PLD/RPMS/packages.i/packages.dir.diff.2002.02.24-18.57.31.gz...
Writing digest /mnt/PLD/packages.i/packages.dir.diff.2002.02.24-18.57.31.mdd...
Writing /home/ftp/pub/PLD/RPMS/packages.dir.gz...
Writing digest /home/ftp/pub/PLD/RPMS/packages.dir.mdd...
Local repositories is usable to poldek directly, without existing packages.dir.*, however this is much slower.
$ poldek -s SOURCE [OPTION...] [PACKAGE...]
For example:
$ poldek -s /home/ftp/pub/PLD/RPMS -uv foo
$ poldek -s ftp://localhost/ftp/pub/PLD/RPMS -V
See also sample interactive mode session.
The program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License, version 2 as published by the Free Software Foundation.
See NEWS for a list of major changes in the current release.
Older versions are available here
Development snapshots are available here
Older versions of packages for several RedHat versions can be found here.
Getting the module (no password is needed):
cvs -d :pserver:cvs@anoncvs.pld.org.pl:/cvsroot login
cvs -d :pserver:cvs@anoncvs.pld.org.pl:/cvsroot get -r v0_19_0 poldek
Particular files may be accessed via
CVSWeb
Program mailing list poldek@pld-linux.org
.
To subscribe send mail to
poldek-subscribe@pld-linux.org
Program depends on following packages/libraries: glibc, ncurses, openssl, pcre, readline, rpm and zlib
Pawel A. Gajda (mis at pld.org.pl)
Thanks to Artur Frysiak (wiget at pld.org.pl), Rafal Kleger-Rudomin (klakier at pld.org.pl) and Michal Moskal (malekith at pld.org.pl) for ideas, testing, bug reports and patches.
update 2002/09/20: Full list of contributors is under construction, for now see NEWS
Thanks to Karol Krenski (mimooh at sgsp.edu.pl) for nice poldek's logo. See also other mimooh's works 1, 2.