Displaying information on non-installed RPM package?

PackageRpm

Package Problem Overview


I googled for this, but couldn't find how to query a non-installed RPM file for its information:

# 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]
[...]

Is there a command to read information out of non-installed RPM file?

Package Solutions


Solution 1 - Package

rpm -qip foo.rpm

Solution 2 - Package

@crazyscot did answer the question. Thanks.

Additionally, I found that specific querytags can also be leveraged this way, which wasn't obvious from reading the man page. So, for example, I found I can do the following:

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

or, even:

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

This works nicely for RPM's that are not installed, and leveraging the available querytags in the installed rpm

Here is more information about tags

Solution 3 - Package

When rpm is not-installed then (this will list the complete info, plus the list of contents in the package);

rpm -qipl <rpm_name.rpm> 

When rpm is installed then;

rpm -qi <rpm_name.rpm>

For more on rpm-queries. For more on handy-queries.

Solution 4 - Package

Use rpm -qip:

rpm -qip package_path1 [package_path2 ...]
  • -q - query the package
  • -p - get the package name from arguments

It shows the following info:

Name
Version
Release
Architecture
Install Date
Group
Size
License
Signature
Source RPM
Build Date
Build Host
Relocations
Packager
Vendor
URL
Summary
Description

The man page doesn't talk about the -i option in -q context. However, rpm -qp file doesn't produce the right output.

Solution 5 - Package

less <rpm_name.rpm>

Displays all that I need, same as 'rpm -qlpv'.
Very good resource: https://blog.packagecloud.io/eng/2015/10/13/inspect-extract-contents-rpm-packages/ .

Solution 6 - Package

Related - Display Infos For Installed Package :

rpm -qi InstalledPackageName

Solution 7 - Package

there are lot of -i option used in above answers , best way to check :

For one rpms,

rpm -qlp <rpm-name>.rpm

For all rpms , search for your file with grep :

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

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionGulbaharView Question on Stackoverflow
Solution 1 - PackagecrazyscotView Answer on Stackoverflow
Solution 2 - PackageJoseph WulfView Answer on Stackoverflow
Solution 3 - PackageparasrishView Answer on Stackoverflow
Solution 4 - PackagecodeforesterView Answer on Stackoverflow
Solution 5 - PackageAlexanderView Answer on Stackoverflow
Solution 6 - PackageintikaView Answer on Stackoverflow
Solution 7 - PackageshashankSView Answer on Stackoverflow