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_file("/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
AUTHOR
Chip Turner <cturner@redhat.com>
SEE ALSO
perl. The original RPM module.
4 POD Errors
The following errors were encountered while parsing the POD:
- Around line 380:
'=item' outside of any '=over'
- Around line 388:
You forgot a '=back' before '=head1'
- Around line 390:
'=item' outside of any '=over'
- Around line 430:
You forgot a '=back' before '=head1'