2010-06-09 73 views
51

我GOOGLE了这一点,但无法找到如何查询其信息的非安装RPM文件:在未安装的RPM软件包上显示信息?

# rpm -qa blackfin-jtag-tools-09r1.1-2.i386.rpm 
# 
# rpm -qi blackfin-jtag-tools-09r1.1-2.i386.rpm 
package blackfin-jtag-tools-09r1.1-2.i386.rpm is not installed 
# 
# rpm -q blackfin-jtag-tools-09r1.1-2.i386.rpm 
package blackfin-jtag-tools-09r1.1-2.i386.rpm is not installed 
# 
# rpm --info blackfin-jtag-tools-09r1.1-2.i386.rpm 
RPM version 4.8.0 
Copyright (C) 1998-2002 - Red Hat, Inc. 
This program may be freely redistributed under the terms of the GNU GPL 

Usage: rpm [-aKfgpWHqVcdilsKiv?] [-a|--all] [-f|--file] [-g|--group] [-p|--package] [-W|--ftswalk] [--pkgid] [--hdrid] [--fileid] 
     [--specfile] [--triggeredby] [--whatrequires] [--whatprovides] [--nomanifest] [-c|--configfiles] [-d|--docfiles] 
     [--dump] [-l|--list] [--queryformat=QUERYFORMAT] [-s|--state] [--nofiledigest] [--nomd5] [--nofiles] [--nodeps] 
[...] 

是否有一个命令来读取信息了未安装RPM文件?

回答

81

rpm -qip foo.rpm

+2

我永远记得要么,所以我做了小抄 HTTP://www.pixelb eat.org/docs/packaging.html – pixelbeat 2010-06-09 12:55:05

+9

你也可以通过以下方式了解关于软件包的其他信息:例如'rpm -qp -scripts foo.rpm'来列出rpms前/后脚本或'rpm -qp --list foo.rpm'列出软件包的内容。最后:为了完整性。 -q是查询,-p是非安装包。 – 2014-02-12 07:11:45

13

@crazyscot确实回答了这个问题。谢谢。

此外,我发现特定的查询标签也可以用这种方式,这从阅读手册页不明显。 因此,举例来说,我发现我能做到以下几点:

rpm -qp --queryformat '%{ARCH}\n' foo.rpm 

,或者甚至是:

xyz="ARCH"; rpm -qp --qf %{${xyz}} foo.rpm; echo "" 

这很好地工作了RPM的未安装,并利用现有的查询标签的安装转

这里是more information about tags

+1

也可以用'rpm --querytags'列出可用标签 – Wilf 2016-05-07 07:55:18

0

相关 - 显示的相关信息在INS talled套餐:

rpm -qi InstalledPackageName 
5

当转速为未安装然后(这将列出完整的信息,再加上内容包清单);

rpm -qipl <rpm_name.rpm> 

当转数安装然后;

rpm -qi <rpm_name.rpm> 

欲了解更多关于rpm-queries。 欲了解更多关于handy-queries

0

有很多上述的答案使用-i选项,最好的方法来检查:

对于一个RPM包,

rpm -qlp <rpm-name>.rpm

对于所有进去,搜索文件使用grep:

rpm -qpl *.rpm|grep <string or file name>