#Что означает ошибка
Error: Failed to download metadata for repo "appstream"
Сообщение dnf «Metadata cache created ... Metadata expired» или Failed to download metadata for repo в AlmaLinux чаще всего связано с кэшем, который не обновился из-за сетевой проблемы, или с неактуальной конфигурацией репозиториев. Сам по себе «metadata expire» — обычное событие, но если после него идёт ошибка, нужно разбираться.
Начните с очистки кэша и проверки доступности зеркала.
Затем проверьте файлы репозиториев.
Сообщение значит, что dnf не смог получить список пакетов из репозитория: нет сети, недоступно зеркало или устарел кэш. Начните с очистки кэша и проверки доступа к зеркалу.
#Причины и решения
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Нет сети или DNS | Зеркало не открывается. | Проверьте ping и resolv.conf. |
| Устаревший кэш | Метаданные не совпадают. | dnf clean all. |
| Зеркало недоступно | Ошибка 404/503. | Смените зеркало. |
| Неверное время | Подписи. | Синхронизируйте. |
#Пошаговое решение
- Очистите кэш dnfОткройте терминал сервера и выполните
date -Is, затемtimedatectl status: убедитесь, что системное время и часовой пояс корректны. После этого проверьте доступность URL проблемного зеркала из сообщения dnf, например черезcurl -Iс фактическим адресом, соблюдая ограничения сети. Если сеть работает, но ошибка остаётся, посмотрите списокsudo dnf repolist -vи источники репозиториев. Не меняйте URL вручную на случайный сервер. - Пересоздайте кэшЕсли ошибка относится только к стороннему репозиторию, сначала найдите его ID через
sudo dnf repolist --all, затем проверьте, какие установленные приложения от него зависят. Для разового теста можно использоватьsudo dnf --disablerepo=ID_РЕПОЗИТОРИЯ makecache, подставив реальный ID из списка; это не меняет постоянные настройки. Если без него обновление работает, обращайтесь к владельцу репозитория или исправляйте официальный URL. Не отключайте системные BaseOS и AppStream. - Проверьте доступ к зеркалам и времяИз вывода
sudo dnf repolist -vзапишите URL проблемного зеркала. Проверьтеtimedatectl statusи запросcurl -Iк указанному серверу, если домен разрешён. При ошибке DNS отдельно выполнитеgetent hosts ДОМЕН, подставляя имя из URL. Если время и сеть корректны, вероятна проблема зеркала или метаданных; не отключайте GPG ради обновления. - Проверьте файлы репозиториевОткройте терминал и проверьте фактический выпуск:
cat /etc/os-release. Затем для APT используйтеapt-cache policyи/etc/apt/sources.list.d, для DNF —dnf repolist -v, для openSUSE —zypper lr -uP. Сверяйте только репозитории вашего дистрибутива и выпуска. Не подключайте пакеты из другого выпуска для решения одной зависимости. - Отключите проблемный сторонний репозиторийЕсли недоступен только сторонний репозиторий, найдите его идентификатор через
sudo dnf repolist --allи для проверки исключите в ОДНОЙ операции с помощью--disablerepo=ИДЕНТИФИКАТОР. После этого обратитесь к официальному сайту поставщика за актуальным адресом. Не отключайте базовые репозитории AlmaLinux и не сохраняйте случайное зеркало как постоянное без проверки подписей. - Дополнительная команда по темеLinux · Терминал (Bash)С осторожностьюНужен sudoОчистка всего кэша DNF и повторная загрузка метаданных меняет локальные данные пакетного менеджера и может потребовать повторной загрузки пакетов. Используйте после проверки URL источника.
sudo dnf clean allsudo dnf makecacheКоманда может изменить состояние системы или её настройки. Проверьте параметры и последствия перед запуском.
#Очистка и проверка
Выполните sudo dnf clean all и sudo dnf makecache. Проверьте доступ: curl -I https://repo.almalinux.org/almalinux/ и DNS (nslookup repo.almalinux.org). Проверьте дату и время (timedatectl), на неверном времени TLS не проходит. Подробный вывод: dnf -v makecache. Параметр metadata_expire в /etc/dnf/dnf.conf (по умолчанию 48 часов) можно уменьшить: metadata_expire=6h.
#Репозитории
Файлы: /etc/yum.repos.d/almalinux*.repo. Должны быть включённые baseos, appstream, extras. Проверьте: dnf repolist --all. Переустановите конфигурацию: sudo dnf reinstall almalinux-repos (если dnf работает) или скачайте rpm с . Для зеркал: mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/baseos — проверьте доступность. Можно временно использовать baseurl= на выбранное зеркало из .
#Сторонние репозитории и прокси
Отключите стороннее зеркало, дающее ошибку: sudo dnf --disablerepo=epel makecache. Если проблема в одном репозитории, исправьте его адрес или отключите: sudo dnf config-manager --set-disabled имя. Прокси: параметр proxy= в dnf.conf. Ошибки GPG описаны отдельно: импорт ключа rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux-9. Для версий EOL используйте архив vault.almalinux.org.
sudo dnf clean allsudo dnf makecachednf repolist --allcurl -I https://repo.almalinux.org/almalinux/Команда может изменить состояние системы или её настройки. Проверьте параметры и последствия перед запуском.