Моя цель - создать репозиторий, чтобы я мог установить пакет на машине без подключения к Интернету. Я использую yumdownloader для извлечения пакета и его зависимостей, и он работает, но по завершении выдает сообщение об ошибке. Я хочу либо знать, что могу игнорировать сообщение об ошибке, либо, что еще лучше, не получать сообщение об ошибке, а именно:
Пакет не соответствует предполагаемой загрузке
Шаги, которые я делаю
Создайте локальный репозиторий для пакетов, которые я собираю сам. Например, в каталоге rpmbuild / RPMS / noarch у меня есть такие rpms (номера версий удалены для ясности)
ThePackage.rpm Dependency1.rpm Dependency2.rpm
createrepo в этом каталоге и настройте локальный репозиторий с файлом в /etc/yum.repos.d
создать целевой каталог загрузок, а также пустую фиктивную директорию установки, чтобы yumdownloader извлекал все.
укажите команду (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 и не хочу дополнительных накладных расходов на установку).