【发布时间】:2014-11-26 01:36:22
【问题描述】:
我需要检索安装在我的 Linux (Centos) 主机上的所有软件包的软件包版本。 rpm -qa 给了我所有已安装软件包的列表。 我知道 rpm -qi "package name" 给了我包信息。我尝试从那里对包版本进行 grep 并选择要显示的版本 - 但这会给某些包带来问题,因为一些文本与版本一起被附加到某些包中。以下是我的代码行:- rpm -qi "包名"| grep -w 版本 | awk '{打印 $3}'
是否有任何其他方法可以获取包版本 - 可能来自包名称本身?我们需要一份报告,其中一列中包含包名称,第二列中包含版本。请帮忙。
谢谢。
【问题讨论】:
-
rpm -qa --qf '%{name}\t%{version}\n'?可选用| column -t结尾? -
您好,感谢您的回复。实际上,我还在前两列中写了时间戳和主机的 IP 地址。下面是我的实际代码:- for i in $(rpm -qa);做 echo $tdydate "," $(ip route get 8.8.8.8 | awk 'NR==1 {print $NF}') "," $i "," $(rpm -qi $i| grep -w Version | awk '{print $3}' | sed 's/ .*//') >> $HOME/MyLog/installed_packages.csv;完成
-
你能帮忙吗...在第四列,我需要版本。输出实际上是一个 CSV 文件。
-
rt=$(ip route get 8.8.8.8 | awk 'NR==1 {print $NF}'); rpm -qa --qf "$tdydate,$rt,%{name},%{version}\n"或类似的东西。 -
这很干净。非常感谢队友快速恢复,非常感谢。干杯!
标签: centos package version rpm