如何查询未安装的rpm文件,仅查询包名和版本?

如何查询未安装的rpm文件,仅查询包名和版本?

我有两个不同版本的 rpm 文件(1.1.rpm、2.1.rpm),因此这里我需要查询 rpm 并将输出保存在文本文件(1.1.txt、2.1.txt)中,并且我需要比较两个版本txt 文件并显示表格列中的差异。

例如:

Pkg Name                   |      1.1.txt              | 2.1.txt
-------------------------------+---------------------------+---------------------------
qq                             |         3.4.4.            | 3.5.5
rr                             |         1.18.1            | 1.18.1

我尝试使用此 cmd 进行查询

rpm -qplv file* > 1.1.txt

知道怎么做吗?

答案1

要从包中获取nameand ,可以使用基数以及指定and格式说明符的选项。您可以包含字段宽度修饰符(与 C 相同的方式)以提供格式设置。您还希望重定向到忽略任何 rpm 签名错误。versionrpmrpm -qp--queryformat%{NAME}%{VERSION}printfstderr/dev/null

例如,要列出当前目录中所有 rpm 包的名称和版本:

示例转速:

$ l1 *.rpm
athena-jot-9.0-4.1.x86_64.rpm
freetype2-devel-32bit-2.6.3-5.1.x86_64.rpm
ft2demos-2.6.3-5.1.x86_64.rpm
gtkwrite-0.1.2-2.1.x86_64.rpm
libfreetype6-32bit-2.6.3-5.1.x86_64.rpm

在这些松散的 rpm 上运行命令可以提供:

$ rpm -qp --queryformat "%-24{NAME}%15{VERSION}\n" *.rpm 2>/dev/null
athena-jot                          9.0
freetype2-devel-32bit             2.6.3
ft2demos                          2.6.3
gtkwrite                          0.1.2
libfreetype6-32bit                2.6.3

要将其写入1.1.txt文件,只需重定向输出,例如

$ rpm -qp --queryformat "%-24{NAME}%15{VERSION}\n" *.rpm 2>/dev/null > ~/tmp/1.1.txt

$ cat ~/tmp/1.1.txt
athena-jot                          9.0
freetype2-devel-32bit             2.6.3
ft2demos                          2.6.3
gtkwrite                          0.1.2
libfreetype6-32bit                2.6.3

相关内容