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

RPM Repo: клонирование только исходных пакетов

В рамках проекта мне нужно пересобрать исходные 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 локально.