- Вопрос или проблема
- Вот информация о моем файле my-app.repo.
- Вот ошибка, которую я получаю при установке пакета.
- Ответ или решение
- Причины ошибки
- Шаги по устранению ошибки
- 1. Очистка кэша и метаданных
- 2. Проверка содержимого репозитория
- 3. Проверка конфигурации GPG-ключа
- 4. Убедитесь, что нет зеркал
- Заключение
Вопрос или проблема
Я создаю репозиторий Yum для установки RPM-пакетов.
Я создаю папку mkdir -p ~/yum/el7/x86_64
и перемещаю rpm файл в нее по тому же пути, что и выше.
Вот информация о моем файле my-app.repo.
[my-app]
name=Мое приложение
baseurl=https://dl.my-app.com/yum/el7/$basearch
gpgkey=https://dl.my-app.com/rpm.gpg
gpgcheck=1
enabled=1
repo_gpgcheck=1
Вот ошибка, которую я получаю при установке пакета.
[root@ip-192-31-59-132 ~]# yum install my-app
Загружены плагины: langpacks, priorities, update-motd
Разрешение зависимостей
--> Выполнение проверки транзакции
---> Пакет my-app.x86_64 0:1.3.15-2.el7 будет установлен
--> Завершено разрешение зависимостей
Зависимости разрешены
==================================================================================================================================================================================
Пакет Архитектура Версия Репозиторий Размер
==================================================================================================================================================================================
Установка:
my-app x86_64 1.3.15-2.el7 my-app 9.5 M
Итог по транзакции
==================================================================================================================================================================================
Установить 1 пакет
Общий размер загрузки: 9.5 M
Установленный размер: 33 M
Это нормально [y/d/N]: y
Загрузка пакетов:
my-app-1.3.15-2.el7.x8 НЕУСПЕШНО
https://dl.my-app.com/yum/el7/x86_64/my-app-1.3.15-2.el7.x86_64.rpm: [Errno -1] Пакет не соответствует ожидаемой загрузке. Предложение: выполните yum --enablerepo=my-app clean metadata
Пробую другой источник.
Ошибка загрузки пакетов:
my-app-1.3.15-2.el7.x86_64: [Errno 256] Больше нет доступных зеркал для попытки.
[root@ip-192-31-59-132 ~]#
У меня корректная конфигурация Gnupg. Надеюсь, что это не причина проблемы.
Что я делаю не так? Почему Yum выдает ошибку Пакет не соответствует ожидаемой загрузке
?
# yum clean metadata
и попробуйте снова. Ваш клиент yum(8) имеет свое представление о характеристиках RPM, поэтому попросите его проверить значение их репозитория снова.
Контрольная сумма пакетов после загрузки может не совпадать с репозиторием. Повторите выполнение обновления после очистки метаданных.
# yum clean all ; yum update
Ответ или решение
Ошибка [Errno -1] Package does not match intended download
при использовании Yum может возникать по нескольким причинам, связанным с несоответствием между загружаемым пакетом и метаданными репозитория. В данной статье мы рассмотрим основные причины возникновения этой ошибки и возможные способы их решения.
Причины ошибки
-
Несоответствие хешей пакета: Ошибка может возникнуть, если хеш пакета, находящегося на сервере, не совпадает с хешем, вычисленным клиентом Yum. Это может произойти по различным причинам, включая изменения пакета после его публикации или повреждение файлов.
-
Неправильные метаданные репозитория: Если метаданные не были обновлены после добавления нового пакета или изменения его версии, Yum может пытаться скачать старую версию пакета, что приведет к несовпадению.
-
Проблемы с GPG-ключом: При включении проверки GPG (с помощью
gpgcheck=1
), Yum будет проверять подпись пакета. Если подпись некорректна или ключ был неправильно настроен, это также может привести к ошибке.
Шаги по устранению ошибки
1. Очистка кэша и метаданных
Первым и наиболее простым шагом является очистка кэша и обновление метаданных. Для этого выполните следующие команды:
yum clean all
yum makecache
Эти команды очистят все данные кэша Yum, включая метаданные, что заставит систему заново загрузить актуальные метаданные из репозитория.
2. Проверка содержимого репозитория
Проверьте, действительно ли пакет находится в указанной директории и соответствует ли он версии, которую пытается загрузить Yum. Используйте команду для проверки:
ls -lh ~/yum/el7/x86_64/
Убедитесь, что файл my-app-1.3.15-2.el7.x86_64.rpm
существует и не поврежден.
3. Проверка конфигурации GPG-ключа
Убедитесь, что ваш GPG-ключ правильно настроен и соответствует пакету. Чтобы проверить правильность работы GPG, выполните:
gpg --verify ~/yum/el7/x86_64/my-app-1.3.15-2.el7.x86_64.rpm
Если команда показывает ошибку, проверьте, установлен ли ключ корректно и соответствует ли он ключу, с которым был подписан RPM.
4. Убедитесь, что нет зеркал
Иногда Yum может пытаться загрузить пакет с другого зеркала. Убедитесь, что вы используете именно тот репозиторий, который вы создали, и отключите все дополнительные репозитории, если они включены, чтобы предотвратить путаницу.
Заключение
Ошибка [Errno -1] Package does not match intended download
часто возникает из-за неактуальных метаданных или несоответствия пакета, хеши которого были изменены. Следуя предложенным шагам, можно устранить данную проблему и обеспечить корректную установку пакетов. Если проблема сохраняется, возможно, потребуется дополнительно просмотреть журналы Yum для более подробной диагностики.