RPM Commands

From Free Knowledge Base- The DUCK Project: information for everyone
Revision as of 19:43, 31 May 2007 by Admin (Talk | contribs)

Jump to: navigation, search
REDHAT _ _ _ _ _ _ _ _ _ _ _
 _     ___ _   _ _   ___  __
| |   |_ _| \ | | | | \ \/ /
| |    | ||  \| | | | |\  / 
| |___ | || |\  | |_| |/  \ 
|_____|___|_| \_|\___//_/\_\ 

RPM COMMANDS
..............................................................................

RPM is an acronym for Red Hat Package Manger. It was developed by Redhat and is now being used by many Linux distributions.

Get a list of all RPM packages installed on system:

rpm -qa

Looking for a specific package or group of packages? Use grep:

rpm -qa|grep up2date

Remove an unwanted rpm package from the system:

rpm -e up2date-gnome-2.8.39-1.7.2

Forcing removal can be done by saying "don't do dependency check"

rpm -e --nodeps packagename

What's necessary or required for this package:

rpm -qR vim-minimal-6.1-18.8x.1.i386.rpm

Install a package:

rpm -i vim-minimal-6.1-18.8x.1.i386.rpm

Install with status and information:

rpm -ihvv --percent vim-minimal-6.1-18.8x.1.i386.rpm

List files in rpm package when the rpm has not been installed

rpm -qpl vim-minimal-6.1-18.8x.1.i386.rpm

Rebuild RPM database:

(solves "rpmdb: unable to join the environment" problem)
rpm --rebuilddb

Upgrade/Freshen

Using the freshen option is the same as upgrade except the package will only be upgraded if a previous version is installed. Upgrade will install the package even if a previous version does not exist.
rpm -F packagename.rpm
rpm -U packagename.rpm


RPM MANIPULATION

All of these apps will convert rpm files to tar.gz files.

rpm2targz, rpm2tgz, rpm2cpio, alien, etc.

Extract a single file from rpm package without installing entire package

First use rpm -qpl <packagename>|grep <filename> to determine the path to which the file will be installed. Now use rpm2cpio

rpm2cpio <packagename> | cpio -ivd ./path/<filename>

The period will create the path and place <filename> within that structure under whatever directory you are currently in.

example:

find the dovecot init script in dovecot-0.99.14-1.1.el3.rf.i386.rpm)
 rpm -qpl dovecot-0.99.14-1.1.el3.rf.i386.rpm  |grep init

(looks like the path is /etc/rc.d/init.d/dovecot)

 rpm2cpio dovecot-0.99.14-1.1.el3.rf.i386.rpm | cpio -ivd ./etc/rc.d/init.d/dovecot

(created a ./etc/.... inside of the directory I am in: relative to pwd)

rpm2cpio turns an RPM into a standard CPIO archive that you can extract certain files from with the cpio command.

rpm2cpio package | cpio -iv --make-directories full-path

You may also convert the rpm to a cpio archive

rpm2cpio package > cpio-archive-file

If you want to remove a list of RPMs without typing each on separately, you can use the xargs command with rpm.

 rpm -qa | grep xine