The "simple" way is to just dump everything in a directory and run:
rm $(repomanage --keep=2 --old /path/to/repo)
createrepo /path/to/repo
...the more complicated way is to setup koji/etc. to do your builds and create the repos.
Я бы использовал систему управления версиями или метками, которую вы используете для идентификации сборок. Вы также можете идентифицировать пакеты по дате с помощью сценария, запущенного на сервере, на котором размещен репозиторий.
Если загрузка происходит каждый день, почему бы не подумать об удалении старых файлов, которые старше определенного количества дней (с точки зрения времени доступа / модификации)? Найдите и просто удалите их. Если бы вы могли заставить своих разработчиков загружать сборки таким образом, чтобы они помещали название текущего месяца в имя файла при загрузке, было бы понятно из имени файла напрямую, что файл был загружен в так называемом месячном году, и имеет смысл удалить только на основе просмотра имени файла. Для автоматизации вашего сценария было бы легко рассмотреть возможность удаления этих файлов или просто сохранить те файлы, которые соответствуют предыдущему и текущему месяцам. Просто мысль.
Проверьте утилиту "repomanage" из пакета RPM yum-utils. Он делает именно то, что вы ищете.
[root ~]# repomanage --help
usage:
repomanage: manage a directory of rpm packages. returns lists of newest
or oldest packages in a directory for easy piping to xargs
or similar programs.
repomanage [--old] [--new] path.
options:
-h, --help show this help message and exit
-o, --old print the older packages
-n, --new print the newest packages
-s, --space space separated output, not newline
-k KEEP, --keep=KEEP newest N packages to keep - defaults to 1
-c, --nocheck do not check package payload signatures/digests
[root ~]#