RPM Commands
REDHAT _ _ _ _ _ _ _ _ _ _ _ _ ___ _ _ _ ___ __ | | |_ _| \ | | | | \ \/ / | | | || \| | | | |\ / | |___ | || |\ | |_| |/ \ |_____|___|_| \_|\___//_/\_\ RPM COMMANDS ..............................................................................
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
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