RPM (Red Hat Package Manager) is a default open source
and most popular package management utility for Red Hat based systems
like (RHEL, CentOS and Fedora). The tool allows system
administrators and users to install, update, uninstall, query,
verify and manage system software packages in Unix/Linux
operating systems. The RPM formerly known as .rpm file, that includes
compiled software programs and libraries needed by the packages. This utility
only works with packages that built on .rpm format.
- RPM is free and released under GPL (General Public License).
- RPM keeps the information of all the installed packages under /var/lib/rpm database.
- RPM is the only way to install packages under Linux systems, if you have installed packages using source code, then rpm won’t manage it.
- RPM deals with .rpm files, which contains the actual information about the packages such as: what it is, from where it comes, dependencies info, version info etc.
There
are five basic modes for RPM command
- Install : It is used to install any RPM package.
- Remove : It is used to erase, remove or un-install any RPM package.
- Upgrade : It is used to update the existing RPM package.
- Verify : It is used to query about different RPM packages.
- Query : It is used for the verification of any RPM package.
Please remember you must be root
user when installing packages in Linux, with the root privileges you can manage
rpm commands with their appropriate options.
1.
How to Check an RPM Signature Package
Always check the PGP signature of
packages before installing them on your Linux systems and make sure its
integrity and origin is OK. Use the following command with –checksig
(check signature) option to check the signature of a package called pidgin.
[root@vikasserver]#
rpm --checksig pidgin-2.7.9-5.el6.2.i686.rpm
pidgin-2.7.9-5.el6.2.i686.rpm:
rsa sha1 (md5) pgp md5 OK
2.
How to Install an RPM Package
For installing an rpm software
package, use the following command with -i option. For example, to
install an rpm package called pidgin-2.7.9-5.el6.2.i686.rpm.
[root@vikasserver]#
rpm -ivh pidgin-2.7.9-5.el6.2.i686.rpm
Preparing...
########################################### [100%]
1:pidgin
########################################### [100%]
RPM
command and options
- -i : install a package
- -v : verbose for a nicer display
- -h: print hash marks as the package archive is unpacked.
3.
How to check dependencies of RPM Package before Installing
Let’s say you would like to do a
dependency check before installing or upgrading a package. For example, use the
following command to check the dependencies of BitTorrent-5.2.2-1-Python2.4.noarch.rpm
package. It will display the list of dependencies of package.
[root@vikasserver]#
rpm -qpR BitTorrent-5.2.2-1-Python2.4.noarch.rpm
/usr/bin/python2.4
python
>= 2.3
python(abi)
= 2.4
python-crypto
>= 2.0
python-psyco
python-twisted
>= 2.0
python-zopeinterface
rpmlib(CompressedFileNames)
= 2.6
RPM
command and options
- -q : Query a package
- -p : List capabilities this package provides.
- -R: List capabilities on which this package depends..
4.
How to Install a RPM Package Without Dependencies
If you know that all needed packages
are already installed and RPM is just being stupid, you can ignore those
dependencies by using the option –nodeps (no dependencies check)
before installing the package.
[root@vikasserver]#
rpm -ivh --nodeps BitTorrent-5.2.2-1-Python2.4.noarch.rpm
Preparing...
########################################### [100%]
1:BitTorrent
########################################### [100%]
The above command forcefully install
rpm package by ignoring dependencies errors, but if those dependency files are
missing, then the program will not work at all, until you install them.
5.
How to check an Installed RPM Package
Using -q option with package
name, will show whether an rpm installed or not.
[root@vikasserver]#
rpm -q BitTorrent
BitTorrent-5.2.2-1.noarch
6.
How to List all files of an installed RPM package
To view all the files of an
installed rpm packages, use the -ql (query list) with rpm
command.
[root@vikasserver]#
rpm -ql BitTorrent
/usr/bin/bittorrent
/usr/bin/bittorrent-console
/usr/bin/bittorrent-curses
/usr/bin/bittorrent-tracker
/usr/bin/changetracker-console
/usr/bin/launchmany-console
/usr/bin/launchmany-curses
/usr/bin/maketorrent
/usr/bin/maketorrent-console
/usr/bin/torrentinfo-console
7.
How to List All Installed RPM Packages
Type the following command to print
the all the names of installed packages on your Linux system.
[root@vikasserver]#
rpm -qa
initscripts-9.03.31-2.el6.centos.i686
polkit-desktop-policy-0.96-2.el6_0.1.noarch
thunderbird-17.0-1.el6.remi.i686
9.
How to Upgrade a RPM Package
If we want to upgrade any RPM
package “–U” (upgrade) option will be used. One of the major
advantages of using this option is that it will not only upgrade the latest
version of any package, but it will also maintain the backup of the older
package so that in case if the newer upgraded package does not run the
previously installed package can be used again.
[root@vikasserver]#
rpm -Uvh nx-3.5.0-2.el6.centos.i686.rpm
Preparing... ###########################################
[100%]
1:nx
########################################### [100%]
10.
How to Remove a RPM Package
To un-install an RPM package, for
example we use the package name nx, not the original package name nx-3.5.0-2.el6.centos.i686.rpm.
The -e (erase) option is used to remove package.
[root@vikasserver]#
rpm -evv nx
11.
How to Remove an RPM Package Without Dependencies
The –nodeps (Do not check
dependencies) option forcefully remove the rpm package from the system. But
keep in mind removing particular package may break other working applications.
[root@vikasserver]#
rpm -ev --nodeps vsftpd
12.
How to Query a file that belongs which RPM Package
Let’s say, you have list of files
and you would like to find out which package belongs to these files. For
example, the following command with -qf (query file) option will
show you a file /usr/bin/htpasswd is own by package httpd-tools-2.2.15-15.el6.centos.1.i686.
[root@vikasserver]#
rpm -qf /usr/bin/htpasswd
httpd-tools-2.2.15-15.el6.centos.1.i686
13.
How to Query documentation of Installed RPM Package
To get the list of available
documentation of an installed package, use the following command with option -qdf
(query document file) will display the manual pages related to vmstat package.
[root@vikasserver]#
rpm -qdf /usr/bin/vmstat
/usr/share/doc/procps-3.2.8/BUGS
/usr/share/doc/procps-3.2.8/COPYING
/usr/share/doc/procps-3.2.8/COPYING.LIB
/usr/share/doc/procps-3.2.8/FAQ
/usr/share/doc/procps-3.2.8/NEWS
/usr/share/doc/procps-3.2.8/TODO
14.
How to Verify a RPM Package
Verifying a package compares
information of installed files of the package against the rpm database. The -Vp
(verify package) is used to verify a package.
[root@vikasserver]#
rpm -Vp sqlbuddy-1.3.3-1.noarch.rpm
S.5....T. c /etc/httpd/conf.d/sqlbuddy.conf
15.
How To rebuild Corrupted RPM Database
Sometimes rpm database gets
corrupted and stops all the functionality of rpm and other applications on the
system. So, at the time we need to rebuild the rpm database and restore it with
the help of following command.
[root@vikasserver]#
cd /var/lib
[root@vikasserver]#
rm __db*
[root@vikasserver]#
rpm --rebuilddb
[root@vikasserver]#
rpmdb_verify Packages