How to Install RPM on CentOS

install rpm on centos

Usually, a user installs packages using the yum command line utility. The official CentOS repositories contain thousands of RPM packages, but in some cases, you may come across an RPM file that is not in any repository.

Some software authors provide only downloadable RPM files for installation, and that is why RPM files are designed to be downloaded and installed independently, outside of a software repository.

In this tutorial, we will learn how to install a .rpm file to your Linux CentOS distribution.

What is RPM package manager

Red Hat Package Manager is a free and open-source package management system for installing, uninstalling and managing software packages in Red Hat and its derivatives such as CentOS and Fedora.

Prerequisites

Before we begin you need to ensure that you have sudo privileges and that you have installed on your system some of the RPM, DNF, & YUM Package Managers (all included by default).

Also, make sure the RPM package you want to install is built for your system architecture and your CentOS version.

For the purpose of this tutorial, we will be downloading and installing Slack RPM package on CentOS 8.

Download RPM installation package

Typically, a web browser is used to locate and download a .rpm file, but you could also use command-line tools like wget or curl command.

For example, we will use wget command to download slack package (rpm) to the current directory (I am downloading to /tmp) as follows:

$ wget https://downloads.slack-edge.com/linux_releases/slack-4.3.2-0.1.fc21.x86_64.rpm
--2020-02-15 23:11:20--  https://downloads.slack-edge.com/linux_releases/slack-4.3.2-0.1.fc21.x86_64.rpm
Resolving downloads.slack-edge.com (downloads.slack-edge.com)... 99.86.243.67, 99.86.243.88, 99.86.243.60, ...
Connecting to downloads.slack-edge.com (downloads.slack-edge.com)|99.86.243.67|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 60768380 (58M) [application/octet-stream]
Saving to: ‘slack-4.3.2-0.1.fc21.x86_64.rpm’

slack-4.3.2-0.1.fc21.x86_6 100%[========================================>]  57.95M   584KB/s    in 2m 19s  

2020-02-15 23:13:40 (427 KB/s) - ‘slack-4.3.2-0.1.fc21.x86_64.rpm’ saved [60768380/60768380]

To verify you can use ls command to list rpm file under '/tmp' directory:

$ ls /tmp/
slack-4.3.2-0.1.fc21.x86_64.rpm

Installing RPM file using RPM command

You can install RPM package using two methods. First is using RPM command, the other is using yum package manager.

In the following command we use -i option to install the download rpm package:

$ sudo rpm -i /tmp/slack-4.3.2-0.1.fc21.x86_64.rpm 
warning: ./slack-4.3.2-0.1.fc21.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID 8e6c9578: NOKEY
error: Failed dependencies:
	libXScrnSaver is needed by slack-4.3.2-0.1.fc21.x86_64
	libappindicator-gtk3 is needed by slack-4.3.2-0.1.fc21.x86_64

From the above output, we can see that the installation failed because of missing dependencies packages. So we have to check for rpm dependency packages and install them manually.

Check RPM dependencies

To check for the package dependencies we have two rpm options. You can use -qpR to query rpm file and -qR to query by package name.

rpm -qpR .rpm-file
rpm -qR package-name

For example, let's query a .rpm (we use slack rpm, which we already download before) file to find its all required dependency packages:

$ sudo rpm -qpR /tmp/slack-4.3.2-0.1.fc21.x86_64.rpm
warning: slack-4.3.2-0.1.fc21.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID 8e6c9578: NOKEY
libXScrnSaver
libappindicator-gtk3
libsecret-1.so.0()(64bit)
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(PayloadIsXz) <= 5.2-1

Installing RPM packages with yum

Now comes the handy tool called yum where we don't have to worry about dependencies. This yum package manager can pull all of the required dependencies and set them up for us.

We will now use yum package manager to install our downloaded package with the following command:

$ sudo yum localinstall /tmp/slack-4.3.2-0.1.fc21.x86_64.rpm 
CentOS-8 - AppStream                                  6.4 kB/s | 4.3 kB     00:00    
CentOS-8 - Base                                       5.2 kB/s | 3.8 kB     00:00    
CentOS-8 - Extras                                     2.7 kB/s | 1.5 kB     00:00      
Extra Packages for Enterprise Linux Modular 8 - x86_6  26 kB/s |  27 kB     00:01    
Extra Packages for Enterprise Linux 8 - x86_64         20 kB/s |  29 kB     00:01    
Dependencies resolved.
======================================================================================
 Package        Architecture    Version                   Repository             Size
======================================================================================
Installing:
 slack          x86_64          4.3.2-0.1.fc21            @commandline           58 M

Transaction Summary
======================================================================================
Install  1 Package

Total size: 58 M
Installed size: 185 M
Is this ok [y/N]: 

After typing y it will install all of the dependencies and our package:

Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                              1/1 
  Installing       : slack-4.3.2-0.1.fc21.x86_64                                  1/1 
  Running scriptlet: slack-4.3.2-0.1.fc21.x86_64                                  1/1 
  Verifying        : slack-4.3.2-0.1.fc21.x86_64                                  1/1 

Installed:
  slack-4.3.2-0.1.fc21.x86_64                                                         

Complete!

Removing RPM package

To remove the RPM package we instruct RPM to erase the software with -e option.

In the following example, we will uninstall (remove) slack package:

$ sudo rpm -e slack-4.3.2-0.1.fc21.x86_64

Conclusion

In this tutorial, we have shown you how to install and remove RPM packages on CentOS. You should prefer using yum over rpm as it automatically resolves all dependencies for you. Yum makes it simple to track installations, updates, and prerequisites.

Slavisa Milojkovic 12:17 am

Comments

Your email address will not be published. Required fields are marked *

2 Comments

  1. Sure, you can use rpm to install rpm packages, but if you have yum (and I can't imagine a Centos system without yum) you can do:

    yum localinstall ./foobar.rpm

    or

    yum localinstall /path/to/foobar.rpm