# 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 ... # SEE ALSO # AUTHOR Michael R. Davis # COPYRIGHT AND LICENSE MIT License Copyright (c) 2023 Michael R. Davis