I have written a blog explaining different fields of an rpm. To understand a rpm and all its fields follow the below link
Understanding RPM package
Here I have tried to summarize a list of rpm commands which can be helpful.
1. Install a new package
# rpm -ivh gcc-4.3-62.198.x86_64.rpm
Preparing... ########################################### [100%]
1:gcc ########################################### [100%]
2. Forcefully install a package
# rpm -ivh gcc-4.3-62.198.x86_64.rpm
Preparing... ########################################### [100%]
package gcc-4.3-62.198.x86_64 is already installed
As you see since gcc rpm is already installed the installation does not completes so for such situations use should use --force switch as seen below
# rpm -ivh gcc-4.3-62.198.x86_64.rpm --force
Preparing... ########################################### [100%]
1:gcc ########################################### [100%]
3. Upgrade a package
# rpm -Uvh gcc-4.3-62.200.2.x86_64.rpm
Preparing... ########################################### [100%]
1:gcc ########################################### [100%]
4. Un-install a package
To uninstall an rpm you need the exact name of the rpm which has to be installed. For eg if you have to uninstall gcc43-c++ then in case you run the below command to remove this
# rpm -e gcc43-c
error: package gcc43-c is not installed
As you see you should provide complete name # rpm -e gcc-c++
# echo $?
0
5. Install/Un-install a package without dependencies
Make sure you are fully aware before you use this option since there is a probability that the package won't function properly if the dependencies are not installed. Although you can skip the same using --nodeps
# rpm -ivh kiwi-instsource-5.05.25-616.1.x86_64.rpm
warning: kiwi-instsource-5.05.25-616.1.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID d3668a00
error: Failed dependencies:
build is needed by kiwi-instsource-5.05.25-616.1.x86_64
# rpm -ivh kiwi-instsource-5.05.25-616.1.x86_64.rpm --nodeps
warning: kiwi-instsource-5.05.25-616.1.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID d3668a00
Preparing... ########################################### [100%]
1:kiwi-instsource ########################################### [100%]
To remove a package you can use the same option
# rpm -e kiwi-tools-5.05.25-616.1
error: Failed dependencies:
kiwi-tools >= 5.05.25 is needed by (installed) kiwi-5.05.25-616.1.x86_64
Alternatively you can also use --force along with --nodeps
# rpm -e kiwi-tools-5.05.25-616.1 --nodeps
6. Display the Package's File List
Adding -l to rpm -q tells RPM to display the list of files that are installed by the specified package or packages.
# rpm -ql gcc
/usr/bin/cc
/usr/bin/gcc
/usr/bin/gcov
/usr/share/man/man1/cc.1.gz
/usr/share/man/man1/gcc.1.gz
/usr/share/man/man1/gcov.1.gz
7. Display the Package's File List for non-installed rpm
To check this make sure you have access to the rpm of which the content has to be checked
# rpm -qlp squashfs-4.0-2.1.x86_64.rpm
warning: squashfs-4.0-2.1.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID 29b4acdd
/usr/bin/mksquashfs
/usr/bin/unsquashfs
/usr/share/doc/packages/squashfs
/usr/share/doc/packages/squashfs/CHANGES
/usr/share/doc/packages/squashfs/PERFORMANCE.README
/usr/share/doc/packages/squashfs/README
/usr/share/doc/packages/squashfs/README-4.0
8. Display Package's File List with Additional Information
# rpm -qlv gcc
lrwxrwxrwx 1 root root 7 Feb 21 2009 /usr/bin/cc -> gcc-4.3
lrwxrwxrwx 1 root root 7 Feb 21 2009 /usr/bin/gcc -> gcc-4.3
lrwxrwxrwx 1 root root 8 Feb 21 2009 /usr/bin/gcov -> gcov-4.3
lrwxrwxrwx 1 root root 12 Feb 21 2009 /usr/share/man/man1/cc.1.gz -> gcc-4.3.1.gz
lrwxrwxrwx 1 root root 12 Feb 21 2009 /usr/share/man/man1/gcc.1.gz -> gcc-4.3.1.gz
lrwxrwxrwx 1 root root 13 Feb 21 2009 /usr/share/man/man1/gcov.1.gz -> gcov-4.3.1.gz
9. Query the Package Owning <file>
There might be a case when you know a file like /usr/bin/sudo but you are not sure which rpm is responsible for installing this file. Use -qf along with rpm command for such cases.
NOTE: The below command is only useful if the file you are querying for is present in your machine
# rpm -qf /usr/bin/sudo
sudo-1.7.6p2-0.17.5
10. Display a List of the Package's Documentation
When -d is added to a query, we get a list of all files containing documentation for the named package or packages. This is a great way to get up to speed when you're having problems with unfamiliar software. As with -c and -l, you'll see either a simple list of filenames, or (if you've added -v) a more comprehensive list.
# rpm -qd gawk
/usr/share/doc/packages/gawk/AUTHORS
/usr/share/doc/packages/gawk/COPYING
/usr/share/doc/packages/gawk/FUTURES
/usr/share/doc/packages/gawk/LIMITATIONS
/usr/share/doc/packages/gawk/NEWS
/usr/share/doc/packages/gawk/POSIX.STD
/usr/share/doc/packages/gawk/PROBLEMS
/usr/share/doc/packages/gawk/README
/usr/share/info/gawk.info.gz
/usr/share/info/gawkinet.info.gz
/usr/share/man/man1/awk.1.gz
/usr/share/man/man1/gawk.1.gz
/usr/share/man/man1/igawk.1.gz
/usr/share/man/man1/pgawk.1.gz
11. Display the Package's List of Configuration Files
When -c is added to an rpm -q command, RPM will display the configuration files that are part of the specified package or packages.
# rpm -qc netcfg
/etc/HOSTNAME
/etc/aliases
/etc/defaultdomain
/etc/ethers
/etc/exports
/etc/ftpusers
/etc/host.conf
/etc/hosts
/etc/hosts.allow
/etc/hosts.deny
/etc/hosts.equiv
12. Query the Packages That Provide Capability
RPM provides extensive support for dependencies between packages. The basic mechanism used is that a package may require what another package provides.
# rpm -q --whatprovides gcc
gcc-4.3-62.198
13. Display Package Information
# rpm -qi kernel-default-base
Name : kernel-default-base Relocations: (not relocatable)
Version : 3.0.101 Vendor: SUSE LINUX Products GmbH, Nuernberg, Germany
Release : 0.46.1 Build Date: Wed Dec 17 09:19:54 2014
Install Date: Fri Jun 12 05:31:11 2015 Build Host: sheep03
Group : System/Kernel Source RPM: kernel-default-3.0.101-0.46.1.nosrc.rpm
Size : 23896685 License: GPL v2 only
Signature : RSA/8, Wed Dec 17 09:22:49 2014, Key ID e3a5c360307e3d54
Packager : http://bugs.opensuse.org
URL : http://www.kernel.org/
Summary : The Standard Kernel - base modules
Description :
The standard kernel for both uniprocessor and multiprocessor systems.
This package contains only the base modules, required in all installs.
Source Timestamp: 2014-12-17 12:04:10 +0100
GIT Revision: 8356111faa769f649b6d7c8b5bcbb34fb17120aa
GIT Branch: SLE11-SP3-CVE-2014-9322
Distribution: SUSE Linux Enterprise 11
14. Display Capabilities Provided by the Package
By adding "--provides" to a query command, we can see the capabilities provided by one or more packages. If the package doesn't provide any capabilities, the --provides option produces no output:
# rpm -q gcc --provides
c_compiler
gcc = 4.3-62.198
15. Query All Installed Packages
Using the -a option, you can query every package installed on your system. For example:
# rpm -qa | grep kernel
kernel-default-devel-3.0.76-0.11.1
kernel-firmware-20110923-0.42.49
kernel-source-3.0.76-0.11.1
linux-kernel-headers-2.6.32-1.13.5
kernel-default-3.0.101-0.46.1
kernel-default-base-3.0.101-0.46.1
kernel-default-extra-3.0.101-0.46.1
I hope the article was useful.Also Read:
Install old rpm or downgrade rpm to specific version using yum in Linux