显示有关未安装的RPM软件包的信息?

时间:2010-06-09 12:50:21

标签: package rpm

我用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文件中读取信息?

6 个答案:

答案 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中的可用查询标记

这是more information about tags

答案 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>