Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

RedHat 9 (Linux i386) - man page for rpm2 (redhat section 3)

RPM2(3) 						User Contributed Perl Documentation						   RPM2(3)

NAME
RPM2 - Perl bindings for the RPM Package Manager API
SYNOPSIS
use RPM2; my $db = RPM2->open_rpm_db(); my $i = $db->find_all_iter(); print "The following packages are installed (aka, 'rpm -qa'):\n"; while (my $pkg = $i->next) { print $pkg->as_nvre, "\n"; } $i = $db->find_by_name_iter("kernel"); print "The following kernels are installed (aka, 'rpm -q kernel'):\n"; while (my $pkg = $i->next) { print $pkg->as_nvre, " ", int($pkg->size()/1024), "k\n"; } $i = $db->find_by_provides_iter("kernel"); print "The following packages provide 'kernel' (aka, 'rpm -q --whatprovides kernel'):\n"; while (my $pkg = $i->next) { print $pkg->as_nvre, " ", int($pkg->size()/1024), "k\n"; } print "The following packages are installed (aka, 'rpm -qa' once more):\n"; foreach my $pkg ($db->find_by_file("/bin/sh")) { print $pkg->as_nvre, "\n"; } my $pkg = RPM2->open_package("/tmp/XFree86-4.1.0-15.src.rpm"); print "Package opened: ", $pkg->as_nvre(), ", is source: ", $pkg->is_source_package, "\n";
DESCRIPTION
The RPM2 module provides an object-oriented interface to querying both the installed RPM database as well as files on the filesystem.
CLASS METHODS
Pretty much all use of the class starts here. There are two main entrypoints into the package -- either through the database of installed rpms (aka the rpmdb) or through a file on the filesystem (such as kernel-2.4.9-31.src.rpm or kernel-2.4.9-31.i386.rpm You can have multiple RPM databases open at once, as well as running multiple queries on each. open_rpm_db(-path => "/path/to/db") As it sounds, it opens the RPM database, and returns it as an object. open_package("foo-1.1-14.noarch.rpm") Opens a specific package (RPM or SRPM). Returns a Header object. RPM DB object methods find_all_iter() Returns an iterator object that iterates over the entire database. find_all() Returns an list of all of the results of the find_all_iter() method. find_by_file_iter($filename) Returns an iterator that returns all packages that contain a given file. find_by_file($filename) Ditto, except it just returns the list find_by_name_iter($package_name) You get the idea. This one is for iterating by package name. find_by_name($package_name) Ditto, except it returns a list. find_by_provides_iter($provides_string) This one iterates over provides. find_by_provides($provides_string) Ditto, except it returns a list. find_by_requires_iter($requires_string) This one iterates over requires. find_by_requires($requires_string) Ditto, except it returns a list. RPM Header object methods stuff goes here
TODO
Package installation and removal. Signature validation.
HISTORY
0.01 Initial release
AUTHOR
Chip Turner <cturner@redhat.com>
SEE ALSO
perl. The original RPM module. perl v5.8.0 2002-11-08 RPM2(3)