84

我对此进行了谷歌搜索,但找不到如何查询未安装的 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 文件中读取信息的命令?

4

7 回答 7

132

rpm -qip foo.rpm

于 2010-06-09T12:52:00.673 回答
17

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

此外,我发现也可以通过这种方式利用特定的查询标签,这在阅读手册页时并不明显。因此,例如,我发现我可以执行以下操作:

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

甚至:

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

这适用于未安装的 RPM,并利用已安装 rpm 中的可用查询标签

这是有关标签的更多信息

于 2012-06-07T15:53:58.000 回答
10

未安装rpm 时(这将列出完整信息,以及包中的内容列表);

rpm -qipl <rpm_name.rpm> 

安装rpm 时;

rpm -qi <rpm_name.rpm>

有关rpm-queries的更多信息。有关方便查询的更多信息。

于 2016-04-27T14:42:43.927 回答
5

使用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不会产生正确的输出。

于 2018-06-25T21:41:13.527 回答
1
less <rpm_name.rpm>

显示我需要的所有内容,与“rpm -qlpv”相同。
非常好的资源:https ://blog.packagecloud.io/eng/2015/10/13/inspect-extract-contents-rpm-packages/ 。

于 2018-05-11T08:37:40.557 回答
0

相关 - 显示已安装包的信息:

rpm -qi InstalledPackageName
于 2015-08-02T00:08:56.033 回答
0

上面的答案中有很多 -i 选项,最好的检查方法:

对于一转,

rpm -qlp <rpm-name>.rpm

对于所有 rpms ,使用 grep 搜索您的文件:

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

于 2017-12-11T05:35:30.777 回答