У меня есть репозиторий, где я должен иметь возможность обслуживать более старые версии пакета для клиентов.

Однако, когда я запускаю createrepo в заданном каталоге с теми более старыми версиями пакета, он создает файл filelists.xml только с самой последней версией.

Когда я запускаю createrepo, я вижу, что он учитывает все пакеты, когда он порождает работника.

Например, репозиторий в /var/foo с пакетами:

foo-bar-0.1-1.noarch.rpm
foo-bar-0.2-1.i386.rpm
foo-bar-0.3-1.i386.rpm
foo-bar-0.4-1.i386.rpm

Запуск createrepo покажет, что он читает все пакеты

Worker 0: reading foo-bar-0.1-1.noarch.rpm
Worker 0: reading foo-bar-0.2-1.i386.rpm
Worker 0: reading foo-bar-0.3-1.i386.rpm
Worker 0: reading foo-bar-0.4-1.i386.rpm

Но конечный результат файла filelists.xml имеет только последнюю версию i386.rpm и версию noarch.rpm.

Я попытался передать список файлов, которые я хочу, параметру -i createrepo , но он продолжает дедуплицировать старые версии и отображает только самые последние.

Это приводит к тому, что клиенты не могут видеть более старые версии пакета.

Кто-нибудь знает, как обеспечить, чтобы все версии всех пакетов были представлены в filelists.xml, чтобы он обслуживался yum?

Я на Centos5 использую yum-3.2.22-39.el5.centos и createrepo-0.4.11-3.el5

1 ответ1

0

Я понял, в чем проблема здесь.

Я синхронизировал пакеты из одного ящика в другой, и эти два ящика использовали разные версии createrepo. Коробка, с которой я синхронизировал пакеты и repomd, не содержала более старых версий пакета в репозитории. Версия Centos6 md5 суммирует свои файлы метаданных, а версия centos5 - нет. Yum, очевидно, предпочитает использовать не-md5summed версию и поэтому не смог увидеть все версии пакетов в последней коробке.

Глупая ошибка с моей стороны. Надеюсь, что никто другой не будет иметь эту проблему и учиться на моих ошибках.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .