This tutorial explains how to set up and use Yum repositories on a CentOS 7 VPS.
Step 1. Login via SSH
Log in to your CentOS 7 VPS via SSH as the root user, or as an account with sudo privileges:
ssh root@IP_Address -p Port_number
Make sure to replace “IP_Address” and “Port_number” with your server’s IP address and SSH port.
Step 2. Update the OS Packages and Install the yum-utils Package:
Once you are logged in to the server, run the following commands to make sure that all installed packages are up to date:
yum clean all yum update
Install the yum-utils
package using the following command:
yum install yum-utils
We can enable the EPEL (Extra Packages for Enterprise Linux) repository on CentOS 7 / RHEL 7, maintained by a special Fedora Special Interest Group that creates, maintains, and manages high quality additional packages for enterprise Linux versions. This includes Red Hat Enterprise Linux (RHEL), CentOS, Scientific Linux (SL), and Oracle Enterprise Linux (OEL).
Step 3. Install the EPEL repository
To install the EPEL rpm, do so with the following command:
rpm -Uvh https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-7-11.noarch.rpm
The output will appear as shown below:
Retrieving https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-7-11.noarch.rpm Preparing... ################################# [100%] Updating / installing... 1:epel-release-7-11 ################################# [100%]
Check the newly installed repository. You should be able to find the EPEL repository in the list.
yum repolist
You should receive the following output, or something similar to it:
base | 3.6 kB 00:00:00 epel/x86_64/metalink | 11 kB 00:00:00 epel | 3.2 kB 00:00:00 extras | 3.4 kB 00:00:00 updates | 3.4 kB 00:00:00 (1/7): base/7/x86_64/group_gz | 166 kB 00:00:00 (2/7): base/7/x86_64/primary_db | 5.9 MB 00:00:00 (3/7): epel/x86_64/group_gz | 88 kB 00:00:00 (4/7): epel/x86_64/updateinfo | 934 kB 00:00:00 (5/7): updates/7/x86_64/primary_db | 6.0 MB 00:00:00 (6/7): extras/7/x86_64/primary_db | 204 kB 00:00:00 (7/7): epel/x86_64/primary | 3.6 MB 00:00:00 epel 12739/12739 repo id repo name status base/7/x86_64 CentOS-7 - Base 9,901+10 epel/x86_64 Extra Packages for Enterprise Linux 7 - x86_64 12,739 extras/7/x86_64 CentOS-7 - Extras 432 updates/7/x86_64 CentOS-7 - Updates 1,543+71 repolist: 24,615
In order to see all of the packages available in the EPEL repository, run the following command:
yum --enablerepo=epel list | less
The output of this command will show you the list of packages.
Note: Other CentOS repositories that can be useful are located in /etc/yum.repos.d
directory. When enabling some repository manually by editing the .repo file, make sure that the main version for CentOS is used in the repo file, in this case, it is CentOS 7.
For example, edit the CentOS-Base.repo file and add/modify these lines:
[base] name=CentOS $releasever – Base baseurl=http://mirror.centos.org/centos/7/os/$basearch/ gpgcheck=0 enabled=1 [updates] name=CentOS $releasever – Updates baseurl=http://mirror.centos.org/centos/7/updates/$basearch/ gpgcheck=0 enabled=1 [extras] name=CentOS $releasever – Extras baseurl=http://mirror.centos.org/centos/7/extras/$basearch/ gpgcheck=0 enabled=1
Listing all repositories
To list all repositories, including all enabled and disabled repositories, run:
yum repolist all
Enabling a Yum Repository
To enable a Yum repository, run the following command as root:
yum-config-manager --enable repository <repository name>
Disabling a Yum Repository
To disable a Yum repository, run the following command as root:
yum-config-manager --disable repository <repository name>
Do not forget to replace <repository name> with the actual repo name.
If for some reason we cannot find the software package we need in the official and EPEL repositories, we can extend the capabilities of the server with even more software by adding additional repositories, like the Remi RPM repository, which is not an official repository of CentOS distribution but is well maintained and always up to date.
Remi Collet maintains a large collection of RPM packages, including the latest versions of PHP, etc. Please note that this repo does not always play nicely with other third party CentOS repos, so check the list of repositories using yum repolist
and disable additional repositories if there are any package conflicts.
We can install the Remi repository using this next command:
rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-7.rpm
If for example we want to enable PHP 7.2 , we can edit the /etc/yum.repos.d/remi-php72.repo
file and change enabled=0 to enabled=1 :
# This repository only provides PHP 7.2 and its extensions # NOTICE: common dependencies are in "remi-safe" [remi-php72] name=Remi's PHP 7.2 RPM repository for Enterprise Linux 7 - $basearch #baseurl=http://rpms.remirepo.net/enterprise/7/php72/$basearch/ #mirrorlist=https://rpms.remirepo.net/enterprise/7/php72/httpsmirror mirrorlist=http://cdn.remirepo.net/enterprise/7/php72/mirror enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi
Another good unofficial CentOS repository is the Webtatic Repo. This repository provides updated packages with later versions of PHP, MySQL, and other packages. With this information, you can now install any repository of your choosing and expand the functionality of your server in any way that you need to.
PS. If you liked this post on how to set up and use Yum repositories on a CentOS VPS, please share it with your friends on the social networks using the sharing shortcut, or simply leave a reply below. Thanks.