1. Overview

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:

  • Relatively fast dependency processing 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.
  • „Smart” installation of a big package sets 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.
  • Interactive mode 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).
  • Installation system from scratch needs 8-12 MB memory only 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
  • Quick package set verification for unresolved dependencies unneeded conflicts and dependency loops. Feature is useful for distribution maintainers; see sample report.
  • Division package set for the purpose of placing it on removable media (like CDROM or ZIP). 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.
  • Support for „patches” of package index 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.
  • Program is prepared to be run by ordinary user, installation of packages in that case can be done with sudo.

2. Quick start

2.1 Prepare package repository to be usable to poldek

    $ poldek -s DIR --mkidxz

As result several files will be created under DIR:

  • packages.dir.gz with all needed package data
  • packages.dir.mdd with packages.dir.gz’s digest
  • packages.dir.toc.gz with list of packages

Additionally if previous DIR/packages.dir.gz is different from currently created one then index „patch” is created under DIR/packages.i/


 $ poldek -s /home/ftp/pub/PLD/RPMS --mkidxz
 Loading /home/ftp/pub/PLD/RPMS/...200..400..600..800..1000..1200..1400..1600
 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.

2.2 Use the program

    $ 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.

3. Documentation

  • man page
  • PLD admin manual subsection about poldek (partially obsoleted)

4. Availability

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.

  • Homepage http://team.pld.org.pl/~mis/poldek/
  • Source tarballs and rpm source packages
    • http://team.pld.org.pl/~mis/poldek/download/poldek-0.18.1.tar.gz
    • http://team.pld.org.pl/~mis/poldek/download/poldek-0.18.1-1.src.rpmOlder versions are available hereDevelopment snapshots are available here
  • Binary rpm packages
    • PLD Linux packages (linked with rpm 4.0.2)
      • http://team.pld.org.pl/~mis/poldek/download/poldek-0.18.1-1.i386.rpm
      • Statically linked http://team.pld.org.pl/~mis/poldek/download/poldek-0.18.1-1.static.i386.rpm
    • RedHat Linux packages (rpm 4.0.4)
      • 7.3 http://team.pld.org.pl/~mis/poldek/download/rh/7.3/poldek-0.18.1-1.i386.rpm
      • 7.2 (< 0.17.9 versions only) http://team.pld.org.pl/~mis/poldek/download/rh/7.2/poldek-0.17.8-1.i386.rpm
  • Anonymous CVS 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_18_1 poldek Particular files may be accessed via CVSWeb

5. Mailing list

Program mailing list poldek@pld-linux.org. To subscribe send mail to poldek-subscribe@pld-linux.org

6. Build

Program depends on following packages/libraries: glibc, ncurses, openssl, pcre, readline, rpm and zlib

7. Author

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.