Bug 149017

Summary: Would like to be able to get version sorted list of install kernels
Product: [Fedora] Fedora Reporter: Orion Poplawski <orion>
Component: rpmAssignee: Jeff Johnson <jbj>
Status: CLOSED WONTFIX QA Contact: Mike McLean <mikem>
Severity: medium Docs Contact:
Priority: medium    
Version: 3CC: james.oden, nobody+pnasrat
Target Milestone: ---Keywords: FutureFeature
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Enhancement
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2005-02-20 18:55:48 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Orion Poplawski 2005-02-17 22:36:28 UTC
Description of problem:

It can be hard to determine the version sorted order of installed kernels.  It
would nice to able to obtain a version sorted list with something like:

rpm -q kernel --version-sorted

Is there any order to the listing now?  Insall time?  Man page doesn't appear to
indicate.

Version-Release number of selected component (if applicable):

rpm-4.3.2-21

Comment 1 James Olin Oden 2005-02-18 02:38:27 UTC
I know you want a cli switch but:

   use RPM2;

   my $db = RPM2->open_rpm_db();

   $i = $db->find_by_name_iter("kernel");
   @kernels = $i->expand_iter();
   @kernels = sort(@kernels);
   foreach my $p (@kernels) {
       print $p->as_nvre() . "\n";
   }
   exit(0);

Will do the trick.  Its a tiny perl script using RPM2 (perl rpm bindings).  
Its only an example to give you an idea of what you can do.

Comment 2 Orion Poplawski 2005-02-18 18:05:54 UTC
This:

@kernels = sort(@kernels);

will do a proper RPM version sort, not just alphanumeric?  There is no idication
in the perl RPM2 documentation that it overrides sort or provides RPM version
sorting.

I've been using the perl module RPM::VersionSort for this kind of thing but I
was hoping to avoid perl scripts and modules and have:

lastestkernel=`rpm -q kernel --version-sorted | tail -1`



Comment 3 James Olin Oden 2005-02-18 19:12:14 UTC
Your right its not documented, but the <=> operator is overloaded to properly
compare EVR's (I know its overloaded because I added that patch (-:).  So yes it
will do what you want (in perl).  The docs in RPM2 could be greatly expanded.

Cheers...james

Comment 4 Jeff Johnson 2005-02-20 18:55:48 UTC
rpmquery cannot possibly include enough options to satisfy
every possible need and taste.

Extract the information and sort to taste.