Query: rpm2
OS: redhat
Section: 3
Format: Original Unix Latex Style Formatted with HTML and a Horizontal Scroll Bar
RPM2(3) User Contributed Perl Documentation RPM2(3)NAMERPM2 - Perl bindings for the RPM Package Manager APISYNOPSISuse RPM2; my $db = RPM2->open_rpm_db(); my $i = $db->find_all_iter(); print "The following packages are installed (aka, 'rpm -qa'): "; while (my $pkg = $i->next) { print $pkg->as_nvre, " "; } $i = $db->find_by_name_iter("kernel"); print "The following kernels are installed (aka, 'rpm -q kernel'): "; while (my $pkg = $i->next) { print $pkg->as_nvre, " ", int($pkg->size()/1024), "k "; } $i = $db->find_by_provides_iter("kernel"); print "The following packages provide 'kernel' (aka, 'rpm -q --whatprovides kernel'): "; while (my $pkg = $i->next) { print $pkg->as_nvre, " ", int($pkg->size()/1024), "k "; } print "The following packages are installed (aka, 'rpm -qa' once more): "; foreach my $pkg ($db->find_by_file("/bin/sh")) { print $pkg->as_nvre, " "; } 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, " ";DESCRIPTIONThe RPM2 module provides an object-oriented interface to querying both the installed RPM database as well as files on the filesystem.CLASS METHODSPretty 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 hereTODOPackage installation and removal. Signature validation.HISTORY0.01 Initial releaseAUTHORChip Turner <cturner@redhat.com>SEE ALSOperl. The original RPM module. perl v5.8.0 2002-11-08 RPM2(3)