Назад | Перейти на главную страницу

локальный репозиторий yum, yumdownloader - «Пакет не соответствует предполагаемой загрузке»

Моя цель - создать репозиторий, чтобы я мог установить пакет на машине без подключения к Интернету. Я использую yumdownloader для извлечения пакета и его зависимостей, и он работает, но по завершении выдает сообщение об ошибке. Я хочу либо знать, что могу игнорировать сообщение об ошибке, либо, что еще лучше, не получать сообщение об ошибке, а именно:

Пакет не соответствует предполагаемой загрузке

Шаги, которые я делаю

  1. Создайте локальный репозиторий для пакетов, которые я собираю сам. Например, в каталоге rpmbuild / RPMS / noarch у меня есть такие rpms (номера версий удалены для ясности)

    ThePackage.rpm Dependency1.rpm Dependency2.rpm

  2. createrepo в этом каталоге и настройте локальный репозиторий с файлом в /etc/yum.repos.d

  3. создать целевой каталог загрузок, а также пустую фиктивную директорию установки, чтобы yumdownloader извлекал все.

  4. укажите команду (releasever = / кажется известным обходным путем для ошибки yum)

yumdownloader --releasever = / --installroot = / dummy --resolve --destdir = / target ThePackage

Это работает должным образом. ThePackage, его непосредственные зависимости из локального репозитория и все зависимости из стандартных репозиториев загружаются. Однако в конце я получаю сообщение об ошибке:

file: ///home/me/rpmbuild/RPMS/noarch/ThePackage-5.0.0-4.el7.noarch.rpm: [Errno -1] Пакет не соответствует предполагаемой загрузке. Предложение: запустите yum --enablerepo = Unity5-build clean metadata

Теперь, конечно, я попробовал предложенную команду yum clean и такие варианты, как clean all. Я заблокировал кеш yum. Все та же ошибка.

Единственное, что, похоже, решает проблему, - это сначала установить ThePackage, после чего загрузка работает без жалоб. Это определенно означает, что какое-то состояние где-то нужно очистить, как я могу это сделать?

yum install ThePackage

Однако мне определенно не нужно этого делать (и я не хочу этого делать, поскольку я делаю все это в рабочем потоке CI и не хочу дополнительных накладных расходов на установку).