Configuring YUM Repositories

RHEL

mkdir /etc/yum.repos.d/bak
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak
mount -t iso9660 /dev/cdrom /mnt

cat >/etc/yum.repos.d/media.repo <<EOF
[InstallMedia]
name=Red Hat Enterprise Linux Server release 7
baseurl=file:///mnt
gpgcheck=0
enabled=1

[InstallMedia_HighAvailability]
name=Red Hat Enterprise Linux Server release 7 HighAvailability Add-On
baseurl=file:///mnt/addons/HighAvailability
gpgcheck=0
enabled=1
EOF

yum clean all && yum makecache
sudo mkdir /etc/yum.repos.d/bak
sudo mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak
sudo mount -t iso9660 /dev/sr0 /mnt

sudo bash -c "cat >/etc/yum.repos.d/media.repo" <<EOF
[InstallMedia_BaseOS]
name=Red Hat Enterprise Linux 8/9/10 BaseOS
baseurl=file:///mnt/BaseOS
gpgcheck=0
enabled=1

[InstallMedia_AppStream]
name=Red Hat Enterprise Linux 8/9/10 AppStream
baseurl=file:///mnt/AppStream
gpgcheck=0
enabled=1
EOF

sudo dnf clean all && sudo dnf makecache

CentOS

mkdir /etc/yum.repos.d/bak
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

yum clean all && yum makecache
mkdir /etc/yum.repos.d/bak
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak
mount /dev/sr0 /mnt/

cat >/etc/yum.repos.d/media.repo <<EOF
[InstallMedia]
name=CentOS 7
baseurl=file:///mnt
gpgcheck=0
enabled=1
EOF

yum clean all && yum makecache

OracleLinux

mkdir /etc/yum.repos.d/bak
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak
mount -t iso9660 /dev/cdrom /mnt

cat >/etc/yum.repos.d/media.repo <<EOF
[InstallMedia]
name=Oracle Linux Server 7
baseurl=file:///mnt
gpgcheck=0
enabled=1
EOF

yum clean all && yum makecache
mkdir /etc/yum.repos.d/bak
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak
mkdir -p /mnt/rhiso
mount /dev/cdrom /mnt/rhiso

cat >/etc/yum.repos.d/dvd.repo <<EOF
[RHEL5-Server-DVD]
name=Red Hat Enterprise Linux 5 (DVD)
baseurl=file:///mnt/rhiso/Server
enabled=1
gpgcheck=0
EOF

yum makecache

Adding, Enabling, and Disabling a Yum Repository

yum-config-manager --add-repo repository_url

yum-config-manager --enable repository

yum-config-manager --disable repository

Creating a Yum Repository

To set up a yum repository:

  1. Install the createrepo package:

    yum install createrepo
  2. Copy all packages for your new repository into one directory, such as /tmp/local_repo/:

    cp /your/packages/*.rpm /tmp/local_repo/
  3. To create the repository run:

    createrepo /tmp/local_repo/

    This creates the necessary metadata for the yum repository and places metadata in a newly created subdirectory repodata.

The repository is now ready to be consumed by yum. This repository can be shared over the HTTP or FTP protocol, or refered directly from the local machine.

NOTE: When constructing the URL for a repository, refer to the /mnt/local_repo not to /mnt/local_repo/repodata, as this directory contains only metadata. Actual yum packages are in /mnt/local_repo.