3.9.2.4 Настройка синхронизации локального репозитория
Окружение
- Версия ОС: 8
- Конфигурация ОС: Рабочая станция, Сервер графический, Сервер минимальный
- Редакция ОС: Стандартная
- Архитектура: x86_64
- Версия ПО: createrepo_c-0.20.1-1, 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/repos/redos8/ --repo redos8_base_src --downloadcomps --download-metadata --norepopath
Если нужно синхронизировать только новые пакеты и удалить пакеты из локального репозитория, которых уже нет в основном, то воспользуйтесь командой:
reposync -p /var/www/html/repo/repos/redos8/ --repo redos8_base_src --downloadcomps --download-metadata --norepopath --newest-only --delete
4) Обновите метаданные репозитория.
createrepo -v --compress-type=zstd --general-compress-type=zstd /var/www/html/repo/repos/redos8/redos8_base_src -g comps.xml
Также для обновления репозитория можно воспользоваться скриптом по созданию локального репозитория.
Пример содержимого скрипта:
#!/bin/bash DESTDIR=/var/www/html/repos/redos8/ REPOIDS="redos8_base_src redos8_updates_src" 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 --compress-type=zstd --general-compress-type=zstd $DESTDIR/$REPOID -g comps.xml else createrepo -v --compress-type=zstd --general-compress-type=zstd $DESTDIR/$REPOID fi done
В переменной DESTDIR укажите свой путь до местонахождения вашего репозитория.
В строковой переменной REPOIDS указываются идентификаторы ваших репозиториев, а в цикле скрипта обрабатывается каждый из них.
Следующим шагом добавьте этот скрипт в планировщик задач crontab.
Дата последнего изменения: 26.12.2025
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.