AlmaLinux AlmaLinux

AlmaLinux: dnf не обновляет метаданные репозиториев

  • Обновлено
  • Чтение ≈ 3 минуты
  • Нужны права администратора

Краткий ответ

Сообщение значит, что dnf не смог получить список пакетов из репозитория: нет сети, недоступно зеркало или устарел кэш. Ниже — причины и порядок действий от простого к сложному.

В этой статье
  1. Что означает ошибка
  2. Причины и решения
  3. Пошаговое решение
  4. Очистка и проверка
  5. Репозитории
  6. Сторонние репозитории и прокси

#Что означает ошибка

Сообщение
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.Смените зеркало.
Неверное времяПодписи.Синхронизируйте.

#Пошаговое решение

  1. Очистите кэш dnfОткройте терминал сервера и выполните date -Is, затем timedatectl status: убедитесь, что системное время и часовой пояс корректны. После этого проверьте доступность URL проблемного зеркала из сообщения dnf, например через curl -I с фактическим адресом, соблюдая ограничения сети. Если сеть работает, но ошибка остаётся, посмотрите список sudo dnf repolist -v и источники репозиториев. Не меняйте URL вручную на случайный сервер.
  2. Пересоздайте кэшЕсли ошибка относится только к стороннему репозиторию, сначала найдите его ID через sudo dnf repolist --all, затем проверьте, какие установленные приложения от него зависят. Для разового теста можно использовать sudo dnf --disablerepo=ID_РЕПОЗИТОРИЯ makecache, подставив реальный ID из списка; это не меняет постоянные настройки. Если без него обновление работает, обращайтесь к владельцу репозитория или исправляйте официальный URL. Не отключайте системные BaseOS и AppStream.
  3. Проверьте доступ к зеркалам и времяИз вывода sudo dnf repolist -v запишите URL проблемного зеркала. Проверьте timedatectl status и запрос curl -I к указанному серверу, если домен разрешён. При ошибке DNS отдельно выполните getent hosts ДОМЕН, подставляя имя из URL. Если время и сеть корректны, вероятна проблема зеркала или метаданных; не отключайте GPG ради обновления.
  4. Проверьте файлы репозиториевОткройте терминал и проверьте фактический выпуск: cat /etc/os-release. Затем для APT используйте apt-cache policy и /etc/apt/sources.list.d, для DNF — dnf repolist -v, для openSUSE — zypper lr -uP. Сверяйте только репозитории вашего дистрибутива и выпуска. Не подключайте пакеты из другого выпуска для решения одной зависимости.
  5. Отключите проблемный сторонний репозиторийЕсли недоступен только сторонний репозиторий, найдите его идентификатор через sudo dnf repolist --all и для проверки исключите в ОДНОЙ операции с помощью --disablerepo=ИДЕНТИФИКАТОР. После этого обратитесь к официальному сайту поставщика за актуальным адресом. Не отключайте базовые репозитории AlmaLinux и не сохраняйте случайное зеркало как постоянное без проверки подписей.
  6. Дополнительная команда по теме
    Linux · Терминал (Bash)С осторожностьюНужен sudo
    Очистка всего кэша DNF и повторная загрузка метаданных меняет локальные данные пакетного менеджера и может потребовать повторной загрузки пакетов. Используйте после проверки URL источника.
    sudo dnf clean all
    sudo 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 с repo.almalinux.org. Для зеркал: mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/baseos — проверьте доступность. Можно временно использовать baseurl= на выбранное зеркало из mirrors.almalinux.org.

#Сторонние репозитории и прокси

Отключите стороннее зеркало, дающее ошибку: 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.

Linux · Терминал (Bash)С осторожностьюНужен sudo
Очистка всего кэша DNF и повторная загрузка метаданных меняет локальные данные пакетного менеджера и может потребовать повторной загрузки пакетов. Используйте после проверки URL источника.
sudo dnf clean all
sudo dnf makecache
dnf repolist --all
curl -I https://repo.almalinux.org/almalinux/

Команда может изменить состояние системы или её настройки. Проверьте параметры и последствия перед запуском.

Так эту ошибку тоже называют

Источники и обновления

Последнее обновление статьи: 2 ноября 2026. Версии программ и интерфейсы меняются — если шаги не совпадают с вашей версией, сверяйтесь с документацией производителя.