2.9.2.4 Настройка синхронизации локального репозитория
Окружение
- Версия ОС: 7.3
- Конфигурация ОС: Рабочая станция, Сервер графический, Сервер минимальный
- Редакция ОС: Стандартная
- Архитектура: x86_64
- Версия ПО: createrepo_c-0.20.0-2, dnf-utils-4.4.2-1
Вы можете подробнее ознакомиться с созданием локальных репозиториев, просмотрев наши обучающие видео:
на RuTube — Создание локального репозитория РЕД ОС;
в Яндекс.Дзен — Создание локального репозитория РЕД ОС;
в VK Видео — Создание локального репозитория РЕД ОС.
На наших каналах вы также сможете найти много другой полезной информации.
1) Перейдите в сеанс пользователя root:
su -
Далее команды будут выполняться с правами пользователя root, если не указано иное.
2) Обновите данные о пакетах в основном репозитории.
dnf clean all dnf repolist
3) Синхронизируйте пакеты основного репозитория с локальным.
Пример синхронизации:
reposync -p /var/www/html/repo/red-os-7.3/base7.3/ --repo base7.3 --downloadcomps --download-metadata --norepopath
Если нужно синхронизировать только новые пакеты и удалить пакеты из локального репозитория, которых уже нет в основном, то воспользуйтесь командой:
reposync -p /var/www/html/repo/red-os-7.3/base7.3/ --repo base7.3 --downloadcomps --download-metadata --norepopath --newest-only --delete
4) Обновите метаданные репозитория.
createrepo --update /var/www/html/repo/red-os-7.3/base7.3/ -g comps.xml
Также для обновления репозитория можно воспользоваться скриптом по созданию локального репозитория.
Пример содержимого скрипта:
#!/bin/bash
DESTDIR=/var/www/html/repo/red-os-7.3
REPOIDS="base7.3 updates7.3 kernels7.3 kernels6-7.3"
dnf makecache
for REPOID in $REPOIDS; do
if [[ -d "$DESTDIR/$REPOID/.repodata" ]];
then
rm -rf $DESTDIR/$REPOID/.repodata
fi
reposync --repo $REPOID --newest-only --downloadcomps --download-metadata -p $DESTDIR
if [[ -f "$DESTDIR/$REPOID/comps.xml" ]];
then
createrepo -v $DESTDIR/$REPOID -g comps.xml
else
createrepo -v $DESTDIR/$REPOID
fi
done В переменной DESTDIR укажите свой путь до местонахождения вашего репозитория.
В строковой переменной REPOIDS указываются идентификаторы ваших репозиториев, а в цикле скрипта обрабатывается каждый из них.
Следующим шагом добавьте этот скрипт в планировщик задач crontab.
Дата последнего изменения: 29.10.2025
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.