poldek --mkidxz --sdir=/mnt/rpms-org poldek -s /mnt/rpms-org
poldek> rsearch /bash/ poldek> install gaim
The poldek is the RPM packages management helper tool; its basic features are similar to every modern package updater like apt-get — program takes information about packages from package index file (packages.dir.gz by default) and allows to package install, upgrade and removal. Package dependencies are automatically handled, so if you need to install a package which needs others to be installed, then poldek downloads all required packages by itself and install them.
Relatively fast dependency processing
Package dependencies, conflicts and setting in order are handled by poldek itself without use of rpmlib, so program is significantly faster and uses less memory than rpmlib-based tools.
"Smart" installation of a big package sets
Before installation packages are divided into small groups, usually from 2 to 10 items (depends on their reciprocal dependencies). Each group is installed separately, what ensures that unsucessful installation of one of group doesn't influence other groups.
Another benefit of this separate installation is that it requires less memory and disk space than usual one.
Interactive mode
The poldek can works 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 user is able to browse, search, download, install/upgrade and deinstall packages. In its concept this 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.
Use batch mode.
% poldek --mkidxz --sdir=/mnt/rpms-org Loading /mnt/rpms-org/...200..400..600..800..1000..1200..1400..1472 warn: removed 6 duplicate packages 1466 packages read Writing /mnt/rpms-org/packages.dir.gz... Writing digest /mnt/rpms-org/packages.dir.mdd... % poldek -s /mnt/rpms-org Verifying /mnt/rpms-org/packages.dir.gz... OK Loading /mnt/rpms-org/packages.dir.gz... 1466 packages read Loading cache /root/.poldek-cache/packages.dir.dbcache.var.lib.rpm.gz... 521 packages read Welcome to the poldek shell mode. Type "help" for help with commands. poldek>
the default search options are: -sd, but:
poldek> search bash Searching packages..........................................done. No package matches 'bash' poldek> search Bash Searching packages..........................................done. No package matches 'Bash' poldek> search -a bash Searching packages..........................................done. 16 package(s) found: bash-2.05b-5 gpm-1.19.3-23 info-4.2-5 initscripts-6.95-1 inn-2.3.3-5 mysql-3.23.52-3 pvm-3.4.4-6 sendmail-8.12.5-7 setup-2.5.20-1 squid-2.4.STABLE7-4 sysklogd-1.4.1-10 sysreport-1.3-5 vixie-cron-3.0.1-69 vnc-server-3.3.3r2-39 ypbind-1.11-2 ypserv-2.5-1 poldek> rsearch /bash/ Searching packages..........................................done. 3 package(s) found: bash-2.05b-5 bash-doc-2.05b-5 lftp-2.5.2-5
$ cd /mnt/rpms-org/ $ poldek -s . error: open /mnt/rpms-org/packages.dir.mdd: No such file or directory Loading /mnt/rpms-org/...200..400..600.. -- need --sdir instead of -s $ poldek --sdir=. Loading /mnt/rpms-org/...200..400..600..800..1000..1200..1400..1472 warn: removed 6 duplicate packages 1466 packages read Loading db packages [/var/lib/rpm]........done 511 packages loaded Welcome to the poldek shell mode. Type "help" for help with commands. poldek> help poldek 0.17.9 (beta) Copyright (C) 2000-2002 Pawel A. Gajda <mis@pld.org.pl> This program may be freely redistributed under the terms of the GNU GPL v2 ls [OPTION...] [PACKAGE...] List packages install [OPTION...] PACKAGE... Install packages uninstall [OPTION...] PACKAGE... Uninstall packages get [OPTION...] PACKAGE... Download packages search [OPTION...] PATTERN [PACKAGE...] Search packages desc [OPTION...] PACKAGE... Display packages info reload Reload installed packages help Display this help quit Quit poldek poldek> install gaim Processing dependencies... error: gaim-0.59.1-2: req gnome-core >= 1.2 not found There are 1 package to install: I gaim-0.59.1-2 error: 1 unresolved dependency There were errors poldek> search gnome-core Searching packages..........................................done. No package matches 'gnome-core' poldek> search -? Usage: search [OPTION...] PATTERN [PACKAGE...] Search packages -a, --all Search all described fields, the defaults are: -sd -c, --conflicts Search conflicts -d, --description Search descriptions -f, -l, --files Search file list -g, --group Search groups -o, --obsoletes Search obsolences -p, --provides Search capabilities --perlre Threat PATTERN as Perl regular expression -r, --requires Search requirements -s, --summary Search summaries, urls and license -?, --help Give this help list --usage Give a short usage message With --perlre pattern must be supplied as: <delimiter>perl-regexp<delimiter>[imsx], see perlre(1) for help Defined aliases: what-requires "search -r" what-provides "search -p" rsearch "search --perlre" poldek> search -l gnome-core Searching packages..........................................done. No package matches 'gnome-core' poldek> search -a gnome-core Searching packages..........................................done. 2 package(s) found: gaim-0.59.1-2 gnome-desktop-2.0.6-4 poldek> Writing /root/.poldek-cache/packages.dir.dbcache.var.lib.rpm.gz... Writing digest /root/.poldek-cache/packages.dir.dbcache.var.lib.rpm.mdd...
$ poldek -s /root/.poldek-cache/ error: open /root/.poldek-cache/packages.dir.mdd: No such file or directory Loading /root/.poldek-cache/... error: no packages loaded $ poldek -s /root/.poldek-cache/packages.dir.dbcache.var.lib.rpm.mdd --prefix=. Verifying /root/.poldek-cache/packages.dir.dbcache.var.lib.rpm.mdd... error: broken index error: no packages loaded $ poldek -s /root/.poldek-cache/packages.dir.dbcache.var.lib.rpm.gz --prefix=. Loading /root/.poldek-cache/packages.dir.dbcache.var.lib.rpm.gz... 511 packages read Loading cache /root/.poldek-cache/packages.dir.dbcache.var.lib.rpm.gz... 511 packages read poldek> search -a gnome-core Searching packages... error: 4Suite-0.11.1-10: load package info failed error: ASBeautifier-0.8.2-1: load package info failed [...] error: zlib-devel-1.1.4-4: load package info failed done. No package matches 'gnome-core'
$ poldek --sdir=. Loading /mnt/rpms-org/...200..400..600..800..1000..1200..1400..1472 warn: removed 6 duplicate packages 1466 packages read Loading cache /root/.poldek-cache/packages.dir.dbcache.var.lib.rpm.gz... 511 packages read poldek> install gaim gnome-desktop Processing dependencies... There are 1 package to install: I gnome-desktop-2.0.6-4 Executing rpm --upgrade -vh --root / --noorder... warning: /mnt/rpms-org//gnome-desktop-2.0.6-4.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e Preparing... ########################################### [100%] 1:gnome-desktop ########################################### [100%] Installing set #2 Processing dependencies... error: gaim-0.59.1-2: req gnome-core >= 1.2 not found There are 1 package to install: I gaim-0.59.1-2 error: 1 unresolved dependency There were errors
$ poldek --sdir=/mnt/rpms-org --sdir=/home/tong Loading /mnt/rpms-org/...200..400..600..800..1000..1200..1400..1472 warn: removed 6 duplicate packages Loading /home/tong/...1472 packages read Removed 1 duplicate package from available set Loading cache /root/.poldek-cache/packages.dir.dbcache.var.lib.rpm.gz... 511 packages read poldek> install gaim gnome-core Processing dependencies... error: gnome-core-1.4.0.4-54: req pygnome-libglade >= 0.6 not found gnome-core-1.4.0.4-54 marks sawfish-2.0-4 (cap sawfish) sawfish-2.0-4 marks librep-0.16-3 (cap librep >= 0.16) sawfish-2.0-4 marks rep-gtk-0.16.0.90-4 (cap rep-gtk >= 0.16.0.90-4) gnome-core-1.4.0.4-54 marks libcapplet0-1.4.0.1-9 (cap libcapplet.so.0) gnome-core-1.4.0.4-54 marks libglade-0.17-8 (cap libglade-gnome.so.0) gnome-core-1.4.0.4-54 marks gdk-pixbuf-gnome-0.18.0-4 (cap libgnomecanvaspixbuf.so.1) gnome-core-1.4.0.4-54 marks libgnomeprint15-0.35-8 (cap libgnomeprint.so.15) There are 8 packages to install (7 marked by dependencies): I gnome-core-1.4.0.4-54 D gdk-pixbuf-gnome-0.18.0-4, libglade-0.17-8, libgnomeprint15-0.35-8, D libcapplet0-1.4.0.1-9, librep-0.16-3, rep-gtk-0.16.0.90-4, sawfish-2.0-4 error: 1 unresolved dependency Installing set #2 Processing dependencies... gaim-0.59.1-2 marks gnome-core-1.4.0.4-54 (cap gnome-core >= 1.2) error: gnome-core-1.4.0.4-54: req pygnome-libglade >= 0.6 not found gnome-core-1.4.0.4-54 marks sawfish-2.0-4 (cap sawfish) sawfish-2.0-4 marks librep-0.16-3 (cap librep >= 0.16) sawfish-2.0-4 marks rep-gtk-0.16.0.90-4 (cap rep-gtk >= 0.16.0.90-4) gnome-core-1.4.0.4-54 marks libcapplet0-1.4.0.1-9 (cap libcapplet.so.0) gnome-core-1.4.0.4-54 marks libglade-0.17-8 (cap libglade-gnome.so.0) gnome-core-1.4.0.4-54 marks gdk-pixbuf-gnome-0.18.0-4 (cap libgnomecanvaspixbuf.so.1) gnome-core-1.4.0.4-54 marks libgnomeprint15-0.35-8 (cap libgnomeprint.so.15) There are 9 packages to install (8 marked by dependencies): I gaim-0.59.1-2 D gdk-pixbuf-gnome-0.18.0-4, libglade-0.17-8, libgnomeprint15-0.35-8, D gnome-core-1.4.0.4-54, libcapplet0-1.4.0.1-9, librep-0.16-3, D rep-gtk-0.16.0.90-4, sawfish-2.0-4 error: 1 unresolved dependency There were errors