Вопрос или проблема
Мы пытаемся установить пакет из внутреннего зеркала репозитория EPEL. При этом мы получаем следующее сообщение об ошибке:
epel/primary_db FAILED
https://yum.example.com/yum/EPEL/7/x86_64/repodata/cee535f542076e9b28a71100daf379d696383d5628fdd4571f37dae6f918d0cf0-primary.sqlite.bz2: [Errno 14] HTTPS Error 404 - Not Found
Попытка другого зеркала
https://yum.example.com/yum/EPEL/7/x86_64/repodata/cee535f542076e9b28a71100daf379d696383d5628fdd4571f37dae6f918d0cf0-primary.sqlite.bz2: [Errno 14] HTTPS Error 404 - Not Found
Попытка другого зеркала
Один из сконфигурированных репозиториев не удался (epel),
и у yum недостаточно кешированных данных для продолжения. В данный момент единственное
безопасное, что может сделать yum — это завершиться с ошибкой. Существует несколько способов "исправить" это:
<сниппет нескольких вариантов отключения репозитория>
ошибка: repodata/cee535f542076e9b28a71100daf379d696383d5628fdd4571f37dae6f918d0cf0-primary.sqlite.bz2 из epel: [Errno 256] Нет больше зеркал для попытки.
https://yum.example.com/yum/EPEL/7/x86_64/repodata/cee535f542076e9b28a71100daf379d696383d5628fdd4571f37dae6f918d0cf0-primary.sqlite.bz2: [Errno 14] HTTPS Error 404 - Not Found
Посмотрев в браузере на yum.example.com/yum/EPEL/7/x86_64/repodata/, мы видим записи для 73d6…46bd-primary.sqlite.bz2 и af97…d886-primary.sqlite.bz2; однако записи для cee5…0cf0-primary.sqlite.bz2 нет. Как нам исправить эту проблему?
Следующие полные содержимое /etc/yum.repos.d/epel.repo:
[epel]
sslverify=0
description=Дополнительные пакеты для Enterprise Linux $releasever - $basearch
baseurl=https://yum.example.com/yum/EPEL/$releasever/$basearch
gpgcheckk=0
name=epel
Первое, что я бы проверил — это место на диске:
df -h
Если с этим все в порядке, я бы занялся переинициализацией локального кэша yum. Несколько многообещающих ссылок появляется в Google с запросом “переинициализировать локальный кэш yum”. Проверьте размер вашего локального кэша до и после этого с помощью:
sudo du -sh /var/cache/yum/
Удачи.
Проверьте
https://yum.example.com/yum/EPEL/7/x86_64/repodata/repomd.xml
. Ссылки в этом файле, скорее всего, устарели и должны быть обновлены администратором репозитория.
Ответ или решение
Ошибка, с которой вы столкнулись, указывает на то, что YUM не может найти файл primary.sqlite.bz2
для репозитория EPEL на вашем внутреннем зеркале. Это может происходить по нескольким причинам, и ниже приведены шаги, которые вы можете предпринять для устранения проблемы.
Шаги по устранению проблемы с 404 на primary_db
-
Проверка содержимого репозитория:
Убедитесь, что все необходимые файлы присутствуют в директорииrepodata
вашего внутреннего зеркала. В вашем случае, в браузере вы увидели файлы с другими хэшами, но не с тем, который запрашивает YUM. Проверьте, актуальны ли файлы и не повреждены ли они. Возможно, вам нужно обновить или пересоздать репозиторий. -
Проверка
repomd.xml
:
Откройте файлrepomd.xml
по адресу:https://yum.example.com/yum/EPEL/7/x86_64/repodata/repomd.xml
Убедитесь, что ссылки на файлы, такие как
primary.sqlite.bz2
, ведут на правильные и доступные файлы. Если ссылки устарели, то администратору репозитория необходимо будет обновить их. -
Очистка кеша YUM:
Попробуйте очистить локальный кэш YUM и заново инициализировать его, чтобы убедиться, что у вас есть актуальная информация о репозиториях. Для этого выполните следующие команды:sudo yum clean all sudo yum makecache
Это поможет обновить метаданные репозитория.
-
Проверка пространства на диске:
Убедитесь, что на сервере, где находится зеркало, достаточно места на диске. Вы можете проверить это с помощью команды:df -h
-
Проверка конфигурации репозитория:
Проверьте конфигурационный файл/etc/yum.repos.d/epel.repo
, чтобы убедиться, что он правильно настроен. Ваш файл должен выглядеть примерно так:[epel] name=Extra Packages for Enterprise Linux $releasever - $basearch baseurl=https://yum.example.com/yum/EPEL/$releasever/$basearch enabled=1 gpgcheck=0 sslverify=0
Обратите внимание на правильное написание параметров, например,
gpgcheck
вместоgpgcheckk
. -
Обновление зеркала:
Если никаких доступных файлов нет, возможно, необходимо заново создать или синхронизировать ваше внутреннее зеркало. Это может потребовать использования таких инструментов, какrsync
илиreposync
, чтобы убедиться, что все необходимые файлы и метаданные правильны.
Заключение
Следуя приведённым выше шагам, вы сможете диагностировать и устранить проблему с ошибкой 404 на primary_db
в вашем YUM-репозитории EPEL. Если все вышеперечисленное не поможет, желательно обратиться к администратору вашего внутреннего зеркала для дальнейшего исследования проблемы.