Bug 149017 - Would like to be able to get version sorted list of install kernels
Summary: Would like to be able to get version sorted list of install kernels
Keywords:
Status: CLOSED WONTFIX
Alias: None
Product: Fedora
Classification: Fedora
Component: rpm
Version: 3
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Jeff Johnson
QA Contact: Mike McLean
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2005-02-17 22:36 UTC by Orion Poplawski
Modified: 2007-11-30 22:11 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: Enhancement
Doc Text:
Clone Of:
Environment:
Last Closed: 2005-02-20 18:55:48 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

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.


Note You need to log in before you can comment on or make changes to this bug.