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