The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

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