我需要检索Linux(Centos)主机上安装的所有软件包的软件包版本。 rpm -qa给出了所有已安装软件包的列表。 我明白rpm -qi"包名"给我包裹信息。我尝试从那里为包版本做一个grep并选择要显示的版本 - 但是这会为某些包创建一个问题,因为某些包附加了一些文本以及版本。以下是我的代码行: - rpm -qi"包名" | grep -w版本| awk' {print $ 3}'
有没有其他方法可以获得软件包版本 - 可能来自软件包名称本身?我们需要一个包含一个列中的包名称和第二列中的版本的报告。请帮忙。
感谢。
答案 0 :(得分:1)
您可以使用--qf
标志告诉rpm如何构造其输出。它将格式字符串作为参数。
因此,以下内容可以为您提供所需的信息。
rt=$(ip route get 8.8.8.8 | awk 'NR==1 {print $NF}')
rpm -qa --qf "$tdydate,$rt,%{name},%{version}\n"