Репозитории CentOS 7 с 01.07.2024

С 1 июля 2024 года закончился срок поддержки CentOS 7, а значит — официальные репозитории перестали поддерживаться.
Из-за этого при попытке установить или обновить пакеты (yum install, yum update и т. п.) появляются ошибки вида:
Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=stock error was
14: curl#6 - "Could not resolve host: mirrorlist.centos.org; Unknown error"
14: curl#6 - "Could not resolve host: mirrorlist.centos.org; Name or service not known"
Cannot find a valid baseurl for repo: base/7/x86_64
Пакеты для CentOS 7 остаются доступны в архиве vault.centos.org. Решение — отключить автоопределение зеркала (mirrorlist) и явно прописать baseurl на vault.
Важно. Архив vault заморожен на уровне обновлений от 30.06.2024 и обновлений безопасности больше не получает. Это временное решение, позволяющее продолжать ставить пакеты. Для боевых серверов, доступных извне, планируйте миграцию на поддерживаемую ОС (AlmaLinux 8/9, Rocky Linux 8/9 или CentOS Stream).

Способ 1. Быстрая правка через sed

Сначала сделайте резервную копию каталога с репозиториями:
cp -a /etc/yum.repos.d /etc/yum.repos.d.bak
Затем выполните команды для переключения репозиториев на vault:
sed -i 's/mirror\.centos\.org/vault.centos.org/g' /etc/yum.repos.d/CentOS-*.repo
sed -i 's/^#\s*baseurl=http/baseurl=http/g' /etc/yum.repos.d/CentOS-*.repo
sed -i 's/^mirrorlist=http/#mirrorlist=http/g' /etc/yum.repos.d/CentOS-*.repo
yum clean all
yum makecache

Способ 2. Ручная замена содержимого CentOS-Base.repo

Альтернативно, можно привести содержимое файла /etc/yum.repos.d/CentOS-Base.repo к виду:
[base]
name=CentOS-$releasever - Base
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
baseurl=http://vault.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
#released updates
[updates]
name=CentOS-$releasever - Updates
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
baseurl=http://vault.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra
baseurl=http://vault.centos.org/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra
baseurl=http://vault.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Ссылки на mirror.centos.org / mirrorlist.centos.org могут встречаться и в других файлах каталога /etc/yum.repos.d/ (CentOS-CR.repo, CentOS-fasttrack.repo, CentOS-Sources.repo и т. д.). Найти их можно так:
grep -rlE 'mirror(list)?\.centos\.org' /etc/yum.repos.d/
В найденных файлах замените mirror.centos.org и mirrorlist.centos.org на vault.centos.org либо отключите ненужные репозитории.
Выполните команды:
yum clean all
yum makecache