NAME
RPM::Query - Perl object overlay of the RPM query command
SYNOPSIS
use RPM::Query;
my $rpm = RPM::Query->new;
my $pkg = $rpm->query('perl');
my $requires = $pkg->requires;
foreach my $capability (@$requires) {
printf "Capability: %s\n", $capability->name;
my $whatprovides = $capability->whatprovides;
foreach my $package (@$whatprovides) { #could be zero or more but normally one
printf " Package: %s\n", $package->package_name;
}
}
DESCRIPTION
METHODS
query
Returns an the last object of the passed in package name or undef if not installed.
my $package_obj = $rpm->query("my_package") or die("my_package is not installed");
my $long_name = $package_obj->package_name;
Wrapper around
$ rpm --query | tail -n 1
perl-5.16.3-299.el7_9.x86_64
query_list
my $packages_aref = $rpm->query("kernel");
Wrapper around
$ rpm -q kernel
kernel-3.10.0-1160.76.1.el7.x86_64
kernel-3.10.0-1160.80.1.el7.x86_64
kernel-3.10.0-1160.81.1.el7.x86_64
kernel-3.10.0-1160.83.1.el7.x86_64
kernel-3.10.0-1160.88.1.el7.x86_64
details
Returns a HASH data structure of the details of the passed in package name.
my $hash = $rpm->details("my_package");
my $version = $hash->{'version'};
Wrapper around
$ rpm --query perl --queryformat '%{name} %{version} ...'
perl 5.16.3 ...
verify
Returns true if verify is clean
Wrapper around
$ rpm --verify perl && echo 1 || echo 0
1
whatprovides
Returns a list of packages that provides the capability
my $package = $rpm->whatprovides('perl(strict)'); #isa ARRAY of RPM::Query::Package
Wrapper around
$ rpm --query --whatprovides 'perl(strict)'
perl-5.16.3-299.el7_9.x86_64
provides
Returns a list of capabilities that the installed package provides
my $capabilities = $rpm->provides('perl'); #isa ARRAY of RPM::Query::Capability objects
Wrapper around
$ rpm --query --provides 'perl'
perl = 4:5.16.3-299.el7_9
perl(AutoLoader) = 5.72
perl(B) = 1.35
perl(B::Section)
...
requires
Returns a list of capabilities that the package requires
my $capabilities = $rpm->requires('perl'); #isa ARRAY of RPM::Query::Capability objects
Wrapper around
$ rpm --query --requires perl
/usr/bin/perl
libpthread.so.0()(64bit)
perl >= 0:5.000
...
whatrequires
Returns a list of packages that this capability requires
my $capabilities = $rpm->whatrequires('perl'); #isa ARRAY of RPM::Query::Package objects
Wrapper around
$ rpm --query --whatrequires perl
perl-podlators-2.5.1-3.el7.noarch
perl-Pod-Perldoc-3.20-4.el7.noarch
perl-Text-ParseWords-3.29-4.el7.noarch
perl-Pod-Usage-1.63-3.el7.noarch
perl-threads-shared-1.43-6.el7.x86_64
perl-Filter-1.49-3.el7.x86_64
perl-Exporter-5.68-3.el7.noarch
...
PROPERTIES
command
SEE ALSO
AUTHOR
Michael R. Davis
COPYRIGHT AND LICENSE
MIT License
Copyright (c) 2023 Michael R. Davis