我需要以XML格式检索已安装的RPM( rpm -q" systemd" -i )的信息。根据手册,应该可以使用--qf和-i,但我无法找到方法。
有什么想法吗?谢谢!
答案 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模板脚本。