Trier la version des packages installés

J'essaie d'get la dernière version du package de kernel installé. La difficulté principale est que, dans mon cas, les versions peuvent être installées dans un mauvais ordre, donc je ne peux pas simplement utiliser le dernier argument à partir de rpm .

Je voulais utiliser la command de sort coreutils (coreutils-8.4-31.el6_5.1) qui contient un argument --version-sort , mais cela ne revient pas comme prévu:

 $ rpm -q 'kernel' |sort --version-sort kernel-2.6.32-431.5.1.el6.x86_64 kernel-2.6.32-431.11.2.el6.x86_64 kernel-2.6.32-431.17.1.el6.x86_64 kernel-2.6.32-431.el6.x86_64 rpm -q 'kernel' --last kernel-2.6.32-431.17.1.el6.x86_64 mar. 13 mai 2014 09:48:44 CEST kernel-2.6.32-431.11.2.el6.x86_64 jeu. 24 avril 2014 11:15:25 CEST kernel-2.6.32-431.5.1.el6.x86_64 mer. 12 mars 2014 15:52:23 CET kernel-2.6.32-431.el6.x86_64 ven. 29 nov. 2013 17:48:19 CET 

Comme vous pouvez le voir, la révision 431.e16 (la plus ancienne) est sortingée comme la dernière. Un appel à rpm -qi confirme que:

 Release : 431.17.1.el6 Build Date: jeu. 08 mai 2014 02:48:49 CEST Release : 431.el6 Build Date: ven. 22 nov. 2013 05:28:33 CET 

Est-ce un bug de sort connu? Est-ce déjà réparé? Existe-t-il une solution de contournement simple ou une autre façon d'get la dernière version installée?

One Solution collect form web for “Trier la version des packages installés”

Vous pouvez le faire en spécifiant un format de requête personnalisé.

 # rpm -q --qf="%{BUILDTIME} %{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n" kernel 

Cela affichera l'heure à laquelle le package a été créé à l'origine (par Red Hat) comme un horodatage UNIX suivi du nom du package.

Pour terminer, tout ce dont vous avez besoin est …

 # rpm -q --qf="%{BUILDTIME} %{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n" kernel | \ sort | tail -n 1 | cut -f 2 -d ' ' 
Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de réseau.