RHEL:获取rpm信息作为XML

时间:2017-08-22 11:23:24

标签: xml redhat rpm

我需要以XML格式检索已安装的RPM( rpm -q" systemd" -i )的信息。根据手册,应该可以使用--qf和-i,但我无法找到方法。

有什么想法吗?谢谢!

2 个答案:

答案 0 :(得分:2)

试试这个:

rpm -qa --xml

这似乎至少在CentOS 7中起作用。关于rpm命令查询格式的man页面误导了IMO。

修改

如果上述情况不充分,那么您可能需要使用queryformat自己构建xml。像这样:

rpm -q systemd --qf "<name>%{NAME}</name><version>%{version}</version>\n"

您可以使用--querytags:

检查可用的标签
rpm --querytags

答案 1 :(得分:1)

构建XML比使用--queryformat更精确。

首先, - xml只是一个方便的包装器(参见/ usr / lib / rpm / rpmpopt)

rpm     alias --xml --qf '[%{*:xml}\n]' \
    --POPTdesc=$"list metadata in xml"

关键是你可以替换&#39; *&#39;您可以使用任何标签名称。

与XML示例类似,您可以使用类似

的格式
$ rpm -q --qf '%{NAME:xml}\n' bash
<string>bash</string>

当然,如果您希望在RPM中实现替代标记,则必须编写自己的XML模板脚本。