mirrorlist.centos.org больше не разрешается?

Вопрос или проблема

mirrorlist.centos.org больше не доступен?

Я могу получить доступ к centos.org, но не к mirrorlist.centos.org

Вот вывод моего resolv.conf, dig и nslookup, если кому интересно.

rosdi@H-TQ0nmTkQIbRhN:~/test_ssl$ nslookup mirrorlist.centos.org
Сервер:         1.1.1.1
Адрес:        1.1.1.1#53

** сервер не может найти mirrorlist.centos.org: NXDOMAIN

rosdi@H-TQ0nmTkQIbRhN:~/test_ssl$ nslookup centos.org
Сервер:         1.1.1.1
Адрес:        1.1.1.1#53

Неавторitative ответ:
Имя:   centos.org
Адрес: 52.56.83.118
Имя:   centos.org
Адрес: 81.171.33.201
Имя:   centos.org
Адрес: 81.171.33.202
Имя:   centos.org
Адрес: 2001:4de0:aaae::202
Имя:   centos.org
Адрес: 2a05:d01c:c6a:cc02:225e:ab54:d58c:8b14
Имя:   centos.org
Адрес: 2001:4de0:aaae::201

rosdi@H-TQ0nmTkQIbRhN:~/test_ssl$ cat /etc/resolv.conf
nameserver 1.1.1.1
nameserver 8.8.8.8

rosdi@H-TQ0nmTkQIbRhN:~/test_ssl$ dig mirrorlist.centos.org

; <<>> DiG 9.18.24-0ubuntu5-Ubuntu <<>> mirrorlist.centos.org
;; глобальные опции: +cmd
;; Получен ответ:
;; ->>HEADER<<- opcode: QUERY, статус: NXDOMAIN, id: 61636
;; флаги: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: версия: 0, флаги:; udp: 1232
;; ВОПРОС ЛИНИЯ:
;mirrorlist.centos.org.         IN      A

;; РАЗДЕЛ АВТОРИТЕТА:
centos.org.             2795    IN      SOA     ns1.centos.org. hostmaster.centos.org. 2024070102 28800 7200 2400000 3600

;; Время запроса: 70 мс
;; СЕРВЕР: 1.1.1.1#53(1.1.1.1) (UDP)
;; КОГДА: Пн Июл 01 16:31:41 +08 2024
;; MSG SIZE  rcvd: 101

rosdi@H-TQ0nmTkQIbRhN:~/test_ssl$ nslookup mirrorlist.centos.org
Сервер:         1.1.1.1
Адрес:        1.1.1.1#53

** сервер не может найти mirrorlist.centos.org: NXDOMAIN

rosdi@H-TQ0nmTkQIbRhN:~/test_ssl$

mxtoolbox также показывает то же самое.

mxtoolbox mirrorlist.centos.org

mirrorlist.centos.org больше не существует.

Из файла .repo:

# Система зеркал использует IP-адрес клиента и
# статус обновления каждого зеркала, чтобы выбирать зеркала, которые обновлены и
# географически близки к клиенту. Вам следует использовать это для обновлений CentOS
# если вы не выбираете другие зеркала вручную.
#
# Если mirrorlist= не работает для вас, в качестве запасного варианта вы можете попробовать
# закомментированную строку baseurl= вместо этого.

Чтобы решить проблему, вы можете массово обновить все файлы .repo:

sed -i s/mirror.centos.org/vault.centos.org/g /etc/yum.repos.d/CentOS-*.repo
sed -i 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

CentOS 7 достиг конца жизни (EOL) сегодня, 1 июля 2024 года, поэтому mirrorlist.centos.org больше не требуется.
Чтобы установить пакеты, необходимо изменить репозитории с “mirrorlist” на “baseurl”. В большинстве случаев vault.centos.org будет работать хорошо.

Попробуйте это :

sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*.repo
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*.repo

Не было бы более разумно отключить Centos-Base.repo, включить Centos-Vault.repo и добавить соответствующую конфигурацию?

Моя система – CentOS 7.6.1810.

Шаги конфигурации:

Отключите все репозитории Centos-Base.repo.

[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#выпущенные обновления
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#дополнительные пакеты, которые могут быть полезными
[extras]
name=CentOS-$releasever - Extras
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

Добавьте следующую конфигурацию в Centos-Vault.repo.

# Vault
[Vault-base]
name=Vault - CentOS-$releasever - Base
baseurl=http://vault.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-$releasever

[Vault-updates]
name=Vault - CentOS-$releasever - Updates
baseurl=http://vault.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-$releasever

[Vault-extras]
name=Vault - CentOS-$releasever - Extras
baseurl=http://vault.centos.org/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-$releasever

Обновите кэш yum.

yum clean all ; yum makecache

Результаты проверки

[root@fab687ebbad7 yum.repos.d]# yum repolist
Загруженные плагины: fastestmirror, ovl
Загрузка скорости зеркал из кэшированного файла хоста
repo id                                                                              repo name                                                                               status
!Vault-base/7/x86_64                                                                 Vault - CentOS-7 - Base                                                                 10,072
!Vault-extras/7/x86_64                                                               Vault - CentOS-7 - Extras                                                                  526
!Vault-updates/7/x86_64                                                              Vault - CentOS-7 - Updates                                                               6,173
repolist: 16,771

Мне пришлось сделать немного иначе. Как говорит @mlazarov, нам нужно обновить файлы репозиториев, но вместо http я изменил на использование https:

sed -i s/mirror.centos.org/vault.centos.org/g /etc/yum.repos.d/*.repo
sed -i s/^#.*baseurl=http/baseurl=https/g /etc/yum.repos.d/*.repo
sed -i s/^mirrorlist=http/#mirrorlist=https/g /etc/yum.repos.d/*.repo

Запустив yum upgrade -y, я получил:

failure: repodata/repomd.xml from base: [Errno 256] Не осталось зеркал для попытки.
http://vault.centos.org/centos/7/os/x86_64/repodata/repomd.xml: [Errno 14] HTTPS ошибка 301 - Перемещено навсегда

Тогда я добавил:

echo "sslverify=false" >> /etc/yum.conf

Обновление:

И это сработало, но это нарушает причину добавления https 🙁 так что верните хак sslverify и попробуйте это:

(Для нетерпеливых; Просто вставьте строки внизу и пропустите болтовню)

Проблема в том, что корневые и/или промежуточные сертификаты дистрибутива Centos7 устарели. Некоторые из них истекли, некоторые серверы переместились, и ЦС могли появиться и уйти. Нам нужно получить надежный источник более нового пакета ca-certificates и загрузить его по средству, которое обеспечивает его целостность.

Мы можем получить более новый пакет ca-certificates из любого из ‘исторических/архивных’ зеркал, но они должны быть надежными. Вот короткий список.

https://mirror.nsc.liu.se/centos-store/
https://mirror.fcix.net/centos-vault/
https://archive.kernel.org/centos-vault/

Хорошо, мы можем просто использовать wget и установить.. а, хм, ладно, проблема, wget отсутствует, думайте еще раз. wget отсутствует, нужно установить его с помощью yum, а это сломано, нужно найти другой способ, который снимет этот тупик.

Хотя есть способы сделать простой http GET из оболочки на порту 80, https (порт 443) более сложен. И получение ca-certificates без https было бы безумным. Конечно, можно использовать флешку, но я только что нашел другой способ!

К счастью, похоже, что стандартная установка Centos7 имеет urlgrabber, или по крайней мере, образ контейнера docker-hub centos:7, который я использую, имеет его.

Обновленные файлы CA-сертификатов, которые нам нужны, можно получить и установить следующим образом.

urlgrabber -o ca-certificates.rpm \
  http://archive.kernel.org/centos-vault/centos/7.9.2009/updates/Source/SPackages/ca-certificates-2023.2.60_v7.0.306-72.el7_9.src.rpm

rpm -i ca-certificates.rpm

# Затем, ПОСЛЕ применения re-writes sed, выше
# получаем все обновления

yum clean all && yum -y update

Ответ или решение

Ответ на вопрос: "Почему mirrorlist.centos.org больше не работает?"

К сожалению, вы правы: mirrorlist.centos.org больше не доступен. С 1 июля 2024 года CentOS 7 достиг срока поддержки (EOL), и соответственно, зеркала для его обновлений перестали работать.

Основные проблемы

  1. Вы не можете разрешить mirrorlist.centos.org с помощью nslookup и dig. Это подтверждается сообщением об ошибке NXDOMAIN (отсутствует домен).

  2. Однако centos.org продолжает разрешаться корректно, что указывает на наличие проблем лишь с конкретным поддоменом "mirrorlist".

Решение проблемы

Чтобы установить или обновить пакеты на CentOS 7, вам необходимо изменить конфигурацию репозиториев, чтобы они указывали не на mirrorlist, а на baseurl. Для этого следуйте указанным ниже шагам.

  1. Обновите файлы репозиториев.

Откройте терминал и выполните следующие команды:

# Измените все ссылки на mirrorlist на ссылки на vault
sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*.repo
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*.repo

Это отключит старые зеркала и включит доступ к архиву vault.centos.org, где хранятся старые версии пакетов CentOS.

  1. Очистите кеш и обновите репозитории.

После изменения конфигурации выполните команду, чтобы очистить кэш и обновить список доступных репозиториев:

yum clean all && yum makecache
  1. Проверка успешности обновления.

Для проверки работоспособности получите список доступных репозиториев:

yum repolist

Вы должны увидеть репозитории из vault.centos.org вместо mirrorlist.centos.org.

Альтернативные изменения

В некоторых случаях вы можете предпочесть изменить репозитории, чтобы использовать HTTPS вместо HTTP. Значит, выполните следующие команды:

sed -i 's/mirror.centos.org/vault.centos.org/g' /etc/yum.repos.d/*.repo
sed -i 's/^#.*baseurl=http/baseurl=https/g' /etc/yum.repos.d/*.repo
sed -i 's/^mirrorlist=http/#mirrorlist=https/g' /etc/yum.repos.d/*.repo

Однако, если встречи с ошибками HTTPS (например, 301 Moved Permanently), возможно, вам придется обновить сертификаты CA. Это можно сделать с помощью urlgrabber, если у вас нет wget.

Заключение

Из-за окончательного завершения обновлений CentOS 7 текущие репозитории более не доступны, поэтому необходимы изменения в конфигурации для доступа к старым версиям пакетов через vault.centos.org. Убедитесь, что вы следуете указанным шагам, чтобы обеспечить стабильную работу вашей системы. Если у вас возникнут дополнительные вопросы, пожалуйста, не стесняйтесь задавать их.

Оцените материал
Добавить комментарий

Капча загружается...