В рамках проекта мне нужно пересобрать исходные RPM из действительно удобного Репо Remi Yum (исходный RPMS).
Поиск способов эффективного получения этих пакетов оказался не очень успешным (общие ключевые слова приводят к очень грязным результатам на Google
). reposync
может это сделать, но только в качестве дополнения к клонированию части репозитория RPM. Мне нужно что-то, что делает это только для источников.
Есть ли у кого-нибудь возможность сделать это эффективно?
Примечание: уже применено неэффективное решение:
extractXPathAttr.pl 'http://rpms.famillecollet.com/SRPMS/' '//tr/td[2]/a[1]' 'href' |\
grep src.rpm |\
xargs -I{} wget 'http://rpms.famillecollet.com/SRPMS/{}'
(extractXPathAttr.pl
извлекает обязательный атрибут элементов, заданных XPath, из заданного URL. Я поставлю это на github после того, как он будет очищен и задокументирован.)
reposync
можно использовать только для источников.
Не имеет значения, включено ли исходное репо в /etc/yum.repos.d/
или не. Пока есть репозиторий с исходным кодом, он будет выполнять повторную синхронизацию с включенной функцией или без нее.
Убедитесь, что вы указали имя исходного репозитория вместе с --source
вариант:
reposync -n --source -r foobar-source
Версии, использованные в этом ответе:
rpm -q yum-utils
yum-utils-1.1.31-42.el7.noarch
cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
Вы можете попробовать отразить содержимое репозитория:
wget --mirror http://rpms.famillecollet.com/SRPMS/
В mirror
опция уже использует метку времени, поэтому она также полезна для обновлений локального зеркала.
Затем используйте createrepo
локально.