Notes about how to use Red Hat’s rpm
(Red hat Package Manager).
Don’t forget to also check out notes on yum, a
program that resolves package dependencies and automates many rpm
tasks in normal situations such as system updates.
Querying
Information about archived packages (.rpm files)
To list the package summary of an rpm file that isn’t installed yet:
rpm -qip ./pgp-2.6.3i-1.i386.rpm
To list the files contained in the package:
rpm -qlp ./kdeutils-1.0-2rh51.i386.rpm
-q
::query
-i
::information
-p
::package file as opposed to a normal file
-l
::list
-f
::filename
Information about files that came from an rpm archive
To find out what package a file came from:
rpm -qf /bin/chown
To list the files in a package:
rpm -ql fileutils
To list information about a known installed package:
rpm -qi fileutils
Un/Installing
To install a package in the ordinary way:
rpm -ivh ./pgp-2.6.3i-1.i386.rpm
i::install v::verbose h::hash marks
Also consider -U
which is not uninstall, but rather "upgrade". This
sorts out some things that -i
does not deal with and is usually a
safer installation option.
To uninstall a package in the ordinary way:
rpm -e fileutils
Where fileutils
is the name of an installed package
Fixing
It is rumored that
rpm
can restore messed up permissions for files installed from an
RPM package.
rpm --setperms <packagename>
Installing Source Code
I had a spot of trouble figuring out how to get at source code that was bundled up in an rpm. These files don’t have paths attached to them. They simply go where the global setting for source files should go. To figure out what that is try this:
rpm --showrc
That should show you the SOURCE directory. Do the install as if it were
a normal rpm (with rpm -ivh XXXX.src.rpm
). Nothing seems to happen.
You have to go to the directory specified. I think that you can
specify this directory on a per user basis with a personal .rpmrc
file
in the ~
directory.
Pack List Information
I used to have a big text file that I kept around that contained the RPM descriptions of all of the packages that were on Red Hat 5.0. This file wasn’t extraordinarily large, but large enough that I wanted to get rid of it. So it is replaced with this file that explains how to get the information you need directly from your system using rpm commands.
To generate a list of information about all of the packages that you have installed:
rpm -qia
To generate a list of information about all of the packages that you could install from a distribution cd:
rpm -qip /mnt/cdrom/RedHat/RPMS/*
To generate a list that contains the previous and following 10 lines surrounding a reference to a certain word:
rpm -qip /mnt/cdrom/RedHat/RPMS/* | grep -10 "emulator"
From this, you can often narrow down a search.