Maximum RPM: Taking the Red Hat Package Manager to the Limit | ||
---|---|---|
Prev | Chapter 6. Using RPM to Verify Installed Packages | Next |
When verifying a package, RPM produces output only if there is a verification failure. When a file fails verification, the format of the output is a bit cryptic, but it packs all the information you need into one line per file. Here is the format:
SM5DLUGT c <file> |
Where:
S is the file size.
M is the file's mode.
5 is the MD5 checksum of the file.
D is the file's major and minor numbers.
L is the file's symbolic link contents.
U is owner of the file.
G is the file's group.
T is the modification time of the file.
c appears only if the file is a configuration file. This is handy for quickly identifying config files, as they are very likely to change, and therefore, very unlikely to verify successfully.
<file> is the file that failed verification. The complete path is listed to make it easy to find.
It's unlikely that every file attribute will fail to verify, so each of the eight attribute flags will only appear if there is a problem. Otherwise, a "." will be printed in that flag's place. Let's look at an example or two:
.M5....T /usr/X11R6/lib/X11/fonts/misc/fonts.dir |
In this case, the mode, MD5 checksum, and modification time for the specified file have failed to verify. The file is not a config file (Note the absence of a "c" between the attribute list and the filename).
S.5....T c /etc/passwd |
Here, the size, checksum, and modification time of the system password file have all changed. The "c" indicates that this is a config file.
missing /var/spool/at/spool |
This last example illustrates what RPM does when a file, that should be there, is missing entirely.
When rpm -V finds other problems, the output is a bit easier to understand:
# rpm -V blather Unsatisfied dependencies for blather-7.9-1: bother >= 3.1 # |
It's pretty easy to see that the blather package requires at least version 3.1 of the bother package.
The output from a package's verification script is a bit harder to categorize, as the script's contents, as well as its messages, are entirely up to the package builder.