2010年12月23日星期四

rpm查询安装包的详细信息

很多Linux发行版都采用rpm包来管理软件,rpm数据库会记录软件安装过程中的很多信息,这些信息都可以通过 rpm -q PKG --queryformat %{tags} 进行查询。而rpm支持的所有 tags 则可以通过rpm --querytags 进行查询。

比如查询软件的版本号:
rpm -q glibc --queryformat %{version}
2.11.2

查询软件的安装时间:
rpm -q glibc --queryformat %{installtime}
1288242067
这个输出不太友好,但通过添加rpm支持的modify即可达到需要的效果,简单的将 %{tags} 替换为 %{tags:modify}即可。rpm所支持的modify可以通过man rpm,然后搜索typetag进行查询。

将命令修改为如下,可得到比较理想的结果:
rpm -q glibc --queryformat %{installtime:date}
2010年10月28日 星期四 13时01分07秒

查询的结果有可能是一个列表。如当tags为filenames时,表示查询 PKG 包含的所有文件,这时的查询结果即为一个文件列表。为使列表以友好的方式展现,则需要为queryformat加上中括号,且中括号内包含一个\n。比如:
rpm -q glibc --qf '[%{filenames}\n]'

在定义一个tag的输出宽度时,可采用printf所支持的格式化方式。比如需要输出tags的宽度为20,且采用右对齐方式,则将 %{tags} 修改为 %20{tags} 即可,比如:
rpm -q glibc --qf '[%{name}: %40{filenames} %8{filesizes} bytes\n]'

没有评论:

发表评论