RHEL:获取 rpm 信息为 XML

RHEL: Get rpm info as XML

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

有什么想法吗?谢谢!

试试这个:

rpm -qa --xml

这似乎至少在 CentOS 7 中有效。有关 rpm 命令查询格式的手册页对 IMO 具有误导性。

编辑:

如果以上还不够,那么您可能需要使用查询格式自己构建 xml。像这样:

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

您可以使用 --querytags:

检查可用标签
rpm --querytags

有比使用 --queryformat 更精确的构造 XML 的方法。

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

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

重点是您可以将“*”替换为您想要的任何标签名称。

与您的 XML 示例非常相似,您可以使用 quertformat 之类的

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

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