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
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.
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`
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
rpmquery cannot possibly include enough options to satisfy every possible need and taste. Extract the information and sort to taste.