ave*_*ler 3 rpm sort coreutils
我正在尝试获取已安装内核包的最新版本。主要的困难是,在我的情况下,版本可以安装在一个错误的顺序,所以我不能简单地用--last
从参数rpm
。
我想使用包含参数的coreutils
'sort
命令 (coreutils-8.4-31.el6_5.1) --version-sort
,但这没有按预期返回:
$ 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
Run Code Online (Sandbox Code Playgroud)
如您所见,修订版 431.e16(最旧的)被排序为最新的。电话rpm -qi
确认:
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
Run Code Online (Sandbox Code Playgroud)
这是一个已知的错误sort
吗?已经打补丁了吗?是否有简单的解决方法或其他方法来获取最新安装的版本?
您可以通过指定自定义查询格式来完成此操作。
# rpm -q --qf="%{BUILDTIME} %{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n" kernel
Run Code Online (Sandbox Code Playgroud)
这将显示包最初创建的时间(由 Red Hat)作为后跟包名称的 UNIX 时间戳。
要完成它,您只需要...
# rpm -q --qf="%{BUILDTIME} %{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n" kernel | \
sort | tail -n 1 | cut -f 2 -d ' '
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4533 次 |
最近记录: |