RPM has a powerful query feature that allows you to find out what packages are installed on your system, the files associated with a package, or the package that owns a particular file. Use the -q flag to tell RPM to display the package name, version number, and release number of a package that's already installed, as in this example:
Here are some other flags you can use to specify the packages you want to query:
Flag Meanings
-a Queries all currently installed packages
-f somefile Queries the package that owns the specified file
-p packagefile Queries the specified package
And here are the flags you can use to control and format the information that your query returns:
Flag Meanings
-i Displays detailed package information such as name, description, release, size, build date, install date, and vendor
-l Displays all files associated with the package
-d Displays documentation and help files associated with the package
-c Displays configuration files associated with the package
-v Outputs file listings in the format of the ls -l command
Some Query Examples
You can combine the flags for the querying in may useful ways. Here are some examples.
To find out which package owns a file, enter
rpm -qf /usr/bin/panda
panda-2.0-1
To find the documentation that came with a package, enter
rpm -qd hotrod
/usr/man/man1/hotrod.1
/usr/info/hotrod.info.gz
/usr/doc/hotrod-1.0-1/README
To learn about a package before installing it, enter
rpm -qip hotrod-1.0-1.i386.rpm
Name : hotrod Distribution: Red Hat Linux
Version : 1.0 Vendor: Faster Software
Release : 1 Build Date: Sun Jul 04 14:35:27 1999
Install date: (none) Build Host: dev.faster.com
Group : Games Source RPM: hotrod-1.0-1.src.rpm
Size : 3141593
Summary : simulated hotrod racing game for SVGA
Description :
An action game that pits you against other maniacal drivers
on the Los Angeles freeway. Experience the thrill of road
rage as you attempt to get to work on time.
To see what files a package contains, enter
rpm -qlp hotrod-1.0-1.i386.rpm
/usr/man/man1/hotrod.1
/usr/info/hotrod.info.gz
/usr/doc/hotrod-1.0-1/README
/usr/lib/games/hotrodlib/cars.dat
/usr/lib/games/hotrodlib/drivers.dat
/usr/lib/games/hotrodlib/weapons.dat
/usr/lib/games/hotrodlib
/usr/games/hotrod
To find all installed packages that match a specific pattern, enter
rpm -qa | grep panda
panda-2.0-1
pandacalc-3.1-4
xpanda-1.2-3
Since the -q flag does accept a package name, you might wonder why we didn't use a command like this:
rpm -q panda*
This won't work because of the way the Bash shell treats wildcard characters, so we have to tell RPM to spit out all the installed package names and use grep to filter the list.
Finally, here's an advanced form of the query command that will tell you which packages are taking up the most room:
rpm -qa -queryformat='%{SIZE} %{NAME}' | sort -n
This command uses the -queryformat flag to specify that only the size and name information are to be printed for each package. The rpm output is piped to the sort command, which displays the package list sorted by size, from smallest to largest.
Verifying Packages
RPM includes a verify feature to help you identify problems with your installed packages. If you've deleted some files by accident or you think a file may have been corrupted, you can use the verify feature to find and fix the problem. RPM will compare the size, checksum, permissions, type, owner, and group information from its database against the files installed on your system and report any differences. Remember that RPM flags are case sensitive, so be sure to use a capital "V" when verifying, as in the examples shown here.
To verify a specific package, enter
rpm -V panda
To verify the package that contains a specific file, enter
rpm -Vf /usr/games/hotrod
To verify an installed package against the RPM package file, enter
rpm -Vp hotrod-1.0-1.i386.rpm
To verify all installed packages, enter
rpm -Va
If RPM finds no problems, there will be no output. If any problems are found, RPM will display a file name preceded by a string of eight characters. Each column of this string specifies whether or not there was a problem with a particular attribute of the file. If a period (.) appears in a column, there was no problem. If any of the characters in the following table appears, a problem related to that attribute occurred.
Column Code Explanation
1 5 MD5 checksum
2 S File size
3 L Symbolic link
4 T File modification time
5 D Device
6 U User
7 G Group
8 M Mode (read, write, and execution permissions and file type)
Here's an example showing that the checksum, size, and permissions are messed up for one of the man files in the hotrod package:
5S.....M /usr/man/man1/hotrod.1
If you see any output, you can remove and then reinstall the package, or you can fix the problem some other way if you know what to do.
|
![]() |
|
| <Send This Link to a Friend> <Help> <Bookmark This Page> | ||