rpm (i.e., the program) to query the package database.Of course, although
rpm can be used to install, upgrade, remove, etc. packages, in this day and age we typically use higher-level tools, such as zypper, for this. The query functions of rpm are still useful, however:rpm -q
In its most basic form, the rpm command's query function simply looks up the argument in its database of installed packages:$ rpm -q core-utils package core-utils is not installed
If the argument matches an installed package,
rpm -q returns the package's full name:$ rpm -q coreutils-8.16 coreutils-8.16-5.8.1.x86_64
(For more complete information on a package, use
rpm -qi.)rpm -qa
List all packages currently installed (NOTE: produces lots of output):$ rpm -qa
Update history: list all packages in the reverse order in which they were installed/updated (i.e. latest installed packages listed first). This is a very useful command for troubleshooting if I suspect that a bug was caused by a package update:
# rpm -qa --last | head # ### N.B. only last installation/update of a given package is shown
Find out how many packages are installed:
$ rpm -qa | wc --lines 1903
Find out which packages containing the string "kernel" are installed:
$ rpm -qa | grep kernel kernel-desktop-3.4.11-2.16.1.x86_64 kernel-firmware-20120719git-2.9.1.noarch
List packages by vendor:
rpm -qa --qf '%{NAME} %{VENDOR}\n' | grep NAME_OF_VENDOR
rpm -qf
Find out which package contains a given file (note that the argument has to be a file currently existing in the filesystem):$ rpm -qf `which ls` coreutils-8.16-5.8.1.x86_64
Here's what
rpm -qf gives for a non-existent file:$ rpm -qf ls error: file /home/smithfarm/ls: No such file or directory
Here's what
rpm -qf gives for a file not in any package:$ touch bubba $ rpm -qf bubba file /home/smithfarm/bubba is not owned by any package
rpm -qi
Get information on a package (note that there are several possibilities for the package name: in other words, all three of the following commands produce the same output):$ rpm -qi kernel-desktop-3.4.11-2.16.1 $ rpm -qi kernel-desktop-3.4.11 $ rpm -qi kernel-desktop
rpm -ql
List files contained in a package:# rpm -ql PACKAGE_NAME
All of the above queries concerned installed packages. You can also query uninstalled packages:
rpm -qp
From the manpage: "Query an (uninstalled) package PACKAGE_FILE. The PACKAGE_FILE may be specified as an ftp or http style URL, in which case the package header will be downloaded and queried." (Actually, if you're getting this deep into rpm, you should really read the manpage.)rpm -qpl
The same as -qp, but additionally list the package contents.rpm -V PKGNAME
Lists differences between what is in the filesystem and what is in the package. Details here.rpm -q --whatrequires PKGNAME
Lists packages that require this package (i.e. packages that this package is a dependency of).rpm -q --scripts PKGNAME
List contents of RPM scriptlets (%pre, %post, etc.)
If you are looking for a file, for example libXm.so.3 and you are not sure if it in the package openmotif-libs-32bit or openmotif22-libs-32bit you can your command:
ReplyDeleterpm -qpl ~/openmotif22-libs-32bit-2.2.4-189.1.x86_64.rpm