Quantcast
Channel: GoLinuxHub
Viewing all articles
Browse latest Browse all 392

15 practical examples of rpm command usage in Linux

$
0
0
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

# rpm -e kiwi-tools-5.05.25-616.1 --nodeps

Alternatively you can also use --force along with --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

Follow the below links for more tutorials

How to find the path of any command in Linux
How to configure a Clustered Samba share using ctdb in Red Hat Cluster
How to delete an iscsi-target from openfiler and Linux
How to perform a local ssh port forwarding in Linux
How to use yum locally without internet connection using cache?
What is umask and how to change the default value permanently?
Understanding Partition Scheme MBR vs GPT
How does a successful or failed login process works in Linux
How to find all the process accessing a file in Linux
How to exclude multiple directories from du command in Linux
How to configure autofs in Linux and what are its advantages?
How to resize software raid partition in Linux
How to configure Software RAID 1 mirroring in Linux
How to prevent a command from getting stored in history in Linux

Viewing all articles
Browse latest Browse all 392

Trending Articles