YUM

YUM installer tool

More sooner than later you’ll find yourself using “yum” when installing software on your Linux CentOS 7, and that’s because yum has become the most useful tool to manage packages its dependencies and repositories.

What YUM does is to connect to a software repository to download and install the software for you, taking care at the same time of any possible dependency needed.

RPM is still an option when it comes to install software but it requires a lot more work on your part to download the software first, download all the dependencies and run the rpm command to install the software.

For what YUM stands for?

YUM stands for Yellowdog Updater, Modified, it is a command-line package management utility for RPM-based Linux systems.

RPM

Red-hat Package Manager

Yum is useful for RPMs which have dependencies, what yum will do is to search for all dependencies of any RPM in all available repositories.

Commonly used YUM repositories

We need repositories to keep our systems up to date with the latest packages, because these repositories have all the RPMs required for our servers, the following list shows the most commonly used repositories.

  • EPEL
  • REMI
  • RPMFusin
  • ELRepo
  • Webtatic

These repositories are created, maintained, and managed by Linux’s professional programmers, just as an example, the following GitHub link belongs to the creator or REMI repository:

How to check repositories

You can check all the available repositories for your system, both Enabled and Disabled using the following CLI command.

yum repolist all

How to install YUM utils

yum install yum-utils

One of the main and most useful programs provided by yum-utils is yum-config-manager, which you can use to enable Remi repository as the default repository for installing different PHP versions.

Another usefull tool included between the “yum-utils” is “repoquery” that can be used to “query” a given “YUM Package” to get a list of all the files that have been installed by that particular package.

YUM Utils installation log

[root@centos7 ~]# yum install yum-utils
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: centos.itsbrasil.net
 * extras: mirror.ci.ifes.edu.br
 * updates: linorg.usp.br
Resolving Dependencies
--> Running transaction check
---> Package yum-utils.noarch 0:1.1.31-52.el7 will be installed
--> Processing Dependency: python-kitchen for package: yum-utils-1.1.31-52.el7.noarch
--> Processing Dependency: libxml2-python for package: yum-utils-1.1.31-52.el7.noarch
--> Running transaction check
---> Package libxml2-python.x86_64 0:2.9.1-6.el7_2.3 will be installed
---> Package python-kitchen.noarch 0:1.1.1-5.el7 will be installed
--> Processing Dependency: python-chardet for package: python-kitchen-1.1.1-5.el7.noarch
--> Running transaction check
---> Package python-chardet.noarch 0:2.2.1-3.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================================
 Package                   Arch              Version                      Repository       Size
================================================================================================
Installing:
 yum-utils                 noarch            1.1.31-52.el7                base            121 k
Installing for dependencies:
 libxml2-python            x86_64            2.9.1-6.el7_2.3              base            247 k
 python-chardet            noarch            2.2.1-3.el7                  base            227 k
 python-kitchen            noarch            1.1.1-5.el7                  base            267 k

Transaction Summary
================================================================================================
Install  1 Package (+3 Dependent packages)

Total download size: 862 k
Installed size: 4.3 M
Is this ok [y/d/N]: y
Downloading packages:
(1/4): python-chardet-2.2.1-3.el7.noarch.rpm                             | 227 kB  00:00:15     
(2/4): libxml2-python-2.9.1-6.el7_2.3.x86_64.rpm                         | 247 kB  00:00:15     
(3/4): yum-utils-1.1.31-52.el7.noarch.rpm                                | 121 kB  00:00:00     
(4/4): python-kitchen-1.1.1-5.el7.noarch.rpm                             | 267 kB  00:00:00     
------------------------------------------------------------------------------------------------
Total                                                            53 kB/s | 862 kB  00:00:16     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : python-chardet-2.2.1-3.el7.noarch                                            1/4 
  Installing : python-kitchen-1.1.1-5.el7.noarch                                            2/4 
  Installing : libxml2-python-2.9.1-6.el7_2.3.x86_64                                        3/4 
  Installing : yum-utils-1.1.31-52.el7.noarch                                               4/4 
  Verifying  : python-kitchen-1.1.1-5.el7.noarch                                            1/4 
  Verifying  : yum-utils-1.1.31-52.el7.noarch                                               2/4 
  Verifying  : libxml2-python-2.9.1-6.el7_2.3.x86_64                                        3/4 
  Verifying  : python-chardet-2.2.1-3.el7.noarch                                            4/4 

Installed:
  yum-utils.noarch 0:1.1.31-52.el7                                                              

Dependency Installed:
  libxml2-python.x86_64 0:2.9.1-6.el7_2.3          python-chardet.noarch 0:2.2.1-3.el7         
  python-kitchen.noarch 0:1.1.1-5.el7             

Complete!

How to use Yum-config-manager

We already saw with the command “find” that our system has several PHP versions inside the REMI folder, we can then choose one of them and enable it using the yum-config-manager, as shown below:

  • yum-config-manager –enable remi-php73

Basically, whatever is inside REMI can be enabled using the above command.