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 )