3.4.3 Настройка синхронизации локального репозитория
На нашем Youtube-канале вы можете подробнее ознакомиться с возможностью обновления репозиториев в РЕД ОС, просмотрев видео Обновления и изменения в принципах работы с репозиториями РЕД ОС, а также найти много другой полезной информации.
1) Перейдите в сеанс пользователя root:
su -
Далее команды будут выполняться с правами пользователя root, если не указано иное.
2) Обновите данные о пакетах в основном репозитории.
- для РЕД ОС 7.1 или 7.2:
yum clean all yum repolist
для РЕД ОС 7.3 и старше:
dnf clean all dnf repolist
3) Синхронизируйте пакеты основного репозитория с локальным.
Пример для сертифицированного репозитория:
reposync -p /var/www/html/repo/red-os-7.2c/base7.2c/ -r base7.2c --norepopath
Для РЕД ОС 7.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) Обновите метаданные репозитория.
- для сертифицированной редакции РЕД ОС 7.2:
createrepo --update /var/www/html/repo/red-os-7.2c/base7.2c/
для репозитория РЕД ОС 7.3:
createrepo --update /var/www/html/repo/red-os-7.3/base7.3/ -g comps.xml
Также для обновления репозитория можно воспользоваться скриптом, приведенным в youtube-ролике, по созданию локального репозитория.
Если вы используете РЕД ОС 7.1 или 7.2, выполните команду:
#!/bin/bash
DESTDIR=/var/www/html/redos/7.2/x86_64REPOIDS="base updates kernels"
yum makecache
for REPOID in $REPOIDS; do
reposync --repoid=$REPOID --newest-only --gpgcheck --download_path=$DESTDIR
rm -f $(repomanage --keep=1 --old $DESTDIR)
rm -rf $DESTDIR/$REPOID/.repodata
createrepo -d $DESTDIR/$REPOID
done
Если вы используете РЕД ОС 7.3 и старше, выполните команду:
#!/bin/bash
DESTDIR=/var/www/html/repo/red-os-7.3
REPOIDS="base7.3 updates7.3 kernels7.3"
dnf makecache
for REPOID in $REPOIDS; do
if [[ -f "$DESTDIR/$REPOID/.repodata" ]];
then
rm -rf $DESTDIR/$REPOID/.repodata
fi
reposync --repo $REPOID --newest-only --downloadcomps -p $DESTDIR
if [[ -f "$DESTDIR/$REPOID/comps.xml" ]];
then
createrepo --update $DESTDIR/$REPOID -g comps.xml
else
createrepo --update $DESTDIR/$REPOID
fi
done
В переменной DESTDIR укажите свой путь до местонахождения вашего репозитория.
В строковой переменной REPOIDS указываются идентификаторы ваших репозиториев, а в цикле скрипта обрабатывается каждый из них.
Следующим шагом добавьте этот скрипт в планировщик задач crontab.
Дата последнего изменения: 18.01.2023
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.