Doctor Bob
Linux Topic
Search

 
TOURBUS
HOME PAGE
SAVVY
CONSUMER
FREE TECH
SUPPORT

MANAGING LINUX

Which Linux Software Packages are Installed?

Querying Packages

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:
rpm -q panda
panda-2.0-1

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.

[ RETURN TO INDEX ]




Ask Bob Rankin - Free Tech Support
<Send This Link to a Friend>         <Help>         <Bookmark This Page>


Copyright © by Bob Rankin
All rights reserved - Redistribution is allowed only with permission.