RPM-Query
view release on metacpan or search on metacpan
lib/RPM/Query.pm view on Meta::CPAN
package RPM::Query;
use strict;
use warnings;
use base qw{Package::New};
use List::Util qw{uniq};
use IPC::Run3 qw{};
use RPM::Query::Package;
use RPM::Query::Capability;
our $VERSION = '0.03';
=head1 NAME
RPM::Query - Perl object overlay of the RPM query command
=head1 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;
}
}
=head1 DESCRIPTION
=head1 METHODS
=head2 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
=cut
sub query {
my $self = shift;
my $name = shift or die;
my $array = $self->query_list($name);
return $array->[-1];
}
=head2 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
=cut
sub query_list {
my $self = shift;
my $name = shift or die;
my $array = $self->_run3_array('--query' => $name);
( run in 1.879 second using v1.01-cache-2.11-cpan-39bf76dae61 )