我用Google搜索了这个,但找不到如何查询未安装的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文件中读取信息?
答案 0 :(得分:106)
rpm -qip foo.rpm
答案 1 :(得分:14)
@crazyscot确实回答了这个问题。感谢。
此外,我发现也可以通过这种方式利用特定的查询标记,这在阅读手册页时并不明显。 因此,例如,我发现我可以执行以下操作:
rpm -qp --queryformat '%{ARCH}\n' foo.rpm
或者,甚至:
xyz="ARCH"; rpm -qp --qf %{${xyz}} foo.rpm; echo ""
这适用于未安装的RPM,并利用已安装rpm中的可用查询标记
答案 2 :(得分:8)
当rpm 未安装时(这将列出完整信息,以及包中的内容列表);
rpm -qipl <rpm_name.rpm>
当rpm 已安装时;
rpm -qi <rpm_name.rpm>
有关rpm-queries的更多信息。 有关handy-queries的更多信息。
答案 3 :(得分:2)
使用rpm -qip
:
rpm -qip package_path1 [package_path2 ...]
-q
-查询包裹-p
-从参数获取包名称它显示以下信息:
Name
Version
Release
Architecture
Install Date
Group
Size
License
Signature
Source RPM
Build Date
Build Host
Relocations
Packager
Vendor
URL
Summary
Description
手册页没有讨论-i
上下文中的-q
选项。但是,rpm -qp file
无法产生正确的输出。
答案 4 :(得分:0)
相关 - 显示已安装软件包的信息:
rpm -qi InstalledPackageName
答案 5 :(得分:0)
上面的答案中使用了很多-i选项,最好的方法是检查:
对于一个rpms,
rpm -qlp <rpm-name>.rpm
对于所有rpms,使用grep:
搜索您的文件 rpm -qpl *.rpm|grep <string or file name>