#Что означает ошибка
Error: Failed to download metadata for repo 'updates': Cannot download repomd.xml
Ошибка dnf «Failed to download metadata for repo» значит, что менеджер пакетов не смог загрузить список пакетов из репозитория: нет сети или DNS, репозиторий закрыт или перенесён, зеркало недоступно, неверная дата либо повреждён кэш.
Чаще всего помогает очистка кэша и проверка доступности репозитория.
dnf скачивает файл repomd.xml и метаданные. Если загрузка не удалась, все операции с пакетами останавливаются.
#Причины и решения
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Нет доступа к интернету или DNSСеть недоступна. | ping до сайта не проходит. | Исправьте сеть и DNS. |
| Повреждённый кэш или устаревшие метаданныеКэш содержит ошибки. | Ошибка стабильна. | sudo dnf clean all, затем sudo dnf makecache. |
| Проблемное зеркало или репозиторийЗеркало недоступно. | Ошибка у одного репозитория. | Повторите позже или отключите репозиторий. |
| Неверное время или проксиПроверка сертификата не проходит. | Дата неверна. | Исправьте время, проверьте прокси. |
#Пошаговое решение
- Очистите кэшВ Linux откройте «Терминал» (в большинстве настольных сред Ctrl+Alt+T); на удалённом сервере войдите по SSH только при наличии прав администратора и запасного доступа. Сначала выполните команды диагностики в блоке ниже и проверьте вывод. Перед командами, изменяющими загрузчик, сеть или файлы, сохраните копию данных и убедитесь, что выбран нужный диск/раздел.
- Обновите метаданныеНа Fedora/Rocky/AlmaLinux откройте терминал и запустите
sudo dnf makecache --refresh(в некоторых версиях поддерживаетсяsudo dnf makecache). Дождитесь окончания загрузки и проверьте, какой именно репозиторий сообщил об ошибке. При ошибке DNS проверяйте подключение; при 404 — правильность URL и версии дистрибутива; при TLS — время и доверенный сертификат. Не отключайте проверку сертификатов или подписи репозитория. - Проверьте сеть и времяОткройте несколько разных сайтов или сервисов и проверьте, работает ли подключение на другом устройстве в той же сети. Для сравнения переключитесь между Wi-Fi и мобильным интернетом, если это возможно. Если ошибка только на одном устройстве, проверяйте его сетевые настройки; если на всех — роутер или провайдера.
- Отключите проблемный репозиторийЕсли ошибка указывает именно на сторонний источник пакетов, сначала запишите его имя и сохраните копию конфигурации. В Ubuntu проверьте «Программы и обновления» → «Другое ПО» и снимите галочку лишь с конкретного источника либо отключите соответствующий файл
.sources/.listпосле проверки. Затемsudo apt updateи проверьте сообщения. Если пакет зависит от этого репозитория, его работа может измениться — не удаляйте пакет автоматически. - Проверьте URL репозиторияВ сообщении dnf найдите точный ID проблемного репозитория, затем выполните
sudo dnf repolist -vи найдите егоRepo-baseurl,Repo-metalinkилиRepo-mirrors. Проверьте адрес черезcurl -I(подставив фактический URL) и сравните с официальной документацией поставщика. Если источник сторонний и временно недоступен, его можно исключить только для одного запуска с--disablerepo=IDпосле оценки зависимостей. Не отключайте GPG-проверку и не заменяйте базовые зеркала на произвольные. - Дополнительная команда по темеLinux · Терминал (Bash)С осторожностьюНужен sudoОчистка всех метаданных/загруженных пакетов не является чтением: перед ней проверьте сетевые ошибки и нужный репозиторий.
sudo dnf clean allsudo dnf makecacheКоманда может изменить состояние системы или её настройки. Проверьте параметры и последствия перед запуском.
#Если не помогло
Если ошибка в стороннем репозитории, проверьте, что он поддерживает вашу версию Fedora. Не отключайте проверку GPG для обхода ошибки.
#Диагностика
Выполните sudo dnf clean all && sudo dnf makecache. Проверьте сеть и DNS: ping -c 3 8.8.8.8 и ping -c 3 mirrors.fedoraproject.org. Посмотрите, какой репозиторий вызывает ошибку (указан в сообщении), и отключите сторонний репозиторий: sudo dnf config-manager --set-disabled имя. Проверьте дату и время: timedatectl.
#Для устаревших и закрытых репозиториев
CentOS 8 снят с поддержки: репозитории перенесены на vault.centos.org, замените mirrorlist на baseurl в файлах /etc/yum.repos.d/ либо мигрируйте на AlmaLinux/Rocky Linux. Для Fedora устаревших версий используйте archives.fedoraproject.org. Если используется прокси, проверьте proxy= в /etc/dnf/dnf.conf.
sudo dnf clean allsudo dnf makecachetimedatectlКоманда может изменить состояние системы или её настройки. Проверьте параметры и последствия перед запуском.