Создание локального репозиториев со сторонним ПО для ОС RedOS. -------------------------------------------------------------------------------------------------------------------------------------------------------------- Все описанные ниже работы проводились на ОС RedOS 8 Server. -------------------------------------------------------------------------------------------------------------------------------------------------------------- Все действия описанные ниже выполнялись под пользователем root. -------------------------------------------------------------------------------------------------------------------------------------------------------------- В данной инструкции будет показано то, как создать локальные репозитории с ПО R7-office, Yandex-browser и TrueConf. -------------------------------------------------------------------------------------------------------------------------------------------------------------- 10.10.10.10 — IP-Address сервера с локальными репозиториями. -------------------------------------------------------------------------------------------------------------------------------------------------------------- yum install -y NetworkManager-tui |#|#| Установка пакета "nmtui" для настройки сети на АРМ/VM ------------ Гайд по тому, как пользоваться инструментом nmtui, вы можете посмотреть в интернете. ------------ yum upgrade -y && reboot |#|#| Команда для обновления ОС системы с последующим выполнением перезагрузки ------------ dnf install -y httpd createrepo yum-utils |#|#| Команда для установки пакетов "httpd", "createrepo", "dnf-utils" и "cronie" ------------ rm -rf /etc/yum.repos.d/RedOS-Base.repo && rm -rf /etc/yum.repos.d/RedOS-Updates.repo |#|#| Данной командой удаляем стандартные репозитории "RedOS-Base.repo" и "RedOS-Updates.repo" ------------ systemctl enable httpd --now |#|#| Команда для добавления службы "httpd" в автозагрузку при запуска системы ------------ rm -rf /etc/httpd/conf.d/welcome.conf |#|#| Команда для удаления конфигурации страницы по умолчанию веб-сервера ------------ nano /etc/httpd/conf/httpd.conf |#|#| Команда для редактирования конфигурационного файла "httpd.conf" Внутри секции <Directory "/var/www/html"> отредактируйте строку "Options Indexes FollowSymLinks" к виду "Options Indexes FollowSymLinks Includes" ------------ systemctl restart httpd |#|#| Команда для перезапуска службы "httpd" ------------ nano /etc/yum.repos.d/R7.repo |#|#| Команда для создания конфигурационного файла репозитория "R7.repo" Созданный конфигурационный файл приведите к следующему виду: [r7-office] name=Repositories for R7 Office baseurl=https://desktop:gyxiLab84FByn7sCTd5JY@downloads.r7-office.ru/repository/r7-desktop-yum/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-R7-OFFICE.public sslverify=0 ------------ nano /etc/yum.repos.d/Yandex.repo |#|#| Команда для создания конфигурационного файла репозитория "Yandex.repo" Созданный конфигурационный файл приведите к следующему виду: [yandex-browser] name=Repositories for Yandex Browser baseurl=https://repo.yandex.ru/yandex-browser/rpm/redos/$basearch/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/YANDEX-BROWSER-KEY.GPG ------------ mkdir /var/www/html/outside_software_redos |#|#| Команда для создания каталога "/var/www/html/outside_software_redos" ------------ cd /var/www/html/outside_software_redos/ |#|#| Команда для перехода в каталог "/var/www/html/outside_software_redos/" ------------ reposync --repoid=r7-office --download-metadata --downloadcomps |#|#| Команда для запуска процедуры создания зеркала репозитория "r7-office" ------------ reposync --repoid=r7-office --newest-only --downloadcomps |#|#| Команда для запуска процедуры актуализации зеркала репозитория "r7-office". Если во внешнем репозитории появятся новые пакеты, то данная команда скачает новые пакеты в ваш локальный репозиторий без удаления старых. ------------ createrepo -v /var/www/html/outside_software_redos/r7-office/ |#|#| Команда для создания репозитория "r7-office" ------------ cp /etc/pki/rpm-gpg/RPM-GPG-KEY-R7-OFFICE.public /var/www/html/outside_software_redos/r7-office/ |#|#| Команда для копирования "GPG-ключа" из каталога "/etc/pki/rpm-gpg/" в каталог "/var/www/html/outside_software_redos/r7-office/" ------------ chmod 644 /var/www/html/outside_software_redos/r7-office/RPM-GPG-KEY-R7-OFFICE.public |#|#| Команда для выдачи "644" прав ключу "RPM-GPG-KEY-R7-OFFICE.public" ------------ reposync --repoid=yandex-browser --download-metadata --downloadcomps |#|#| Команда для запуска процедуры создания зеркала репозитория "yandex-browser" ------------ reposync --repoid=yandex-browser --newest-only --downloadcomps |#|#| Команда для запуска процедуры актуализации зеркала репозитория "yandex-browser". Если во внешнем репозитории появятся новые пакеты, то данная команда скачает новые пакеты в ваш локальный репозиторий без удаления старых. ------------ createrepo -v /var/www/html/outside_software_redos/yandex-browser/ |#|#| Команда для создания репозитория "yandex-browser" ------------ cp /etc/pki/rpm-gpg/YANDEX-BROWSER-KEY.GPG /var/www/html/outside_software/yandex-browser/ |#|#| Команда для копирования "GPG-ключа" из каталога "/etc/pki/rpm-gpg/" в каталог "/var/www/html/outside_software_redos/yandex-browser/" ------------ chmod 644 /var/www/html/outside_software/yandex-browser/YANDEX-BROWSER-KEY.GPG |#|#| Команда для выдачи "644" прав ключу "YANDEX-BROWSER-KEY.GPG" ------------ mkdir /var/www/html/outside_software_redos/trueconf |#|#| Команда для создания каталога "/var/www/html/outside_software_redos/trueconf" ------------ cd /root/ |#|#| Команда для перехода в домашний каталог пользователя "root" ------------ nano trueconf.sh |#|#| Команда для создания скрипта по копированию репозиториев "trueconf" с автозагрузкой новых пакетов и без удаления старых Созданный файл скрипта приведите к следующему виду: #!/bin/bash DOWNLOAD_DIR="/var/www/html/outside_software_redos/trueconf" BASE_URL="https://mirror.trueconf.ru/redos" ARCH="x86_64" TMP_REPO="/tmp/trueconf.repo" GPG_KEY_URL="https://mirror.trueconf.ru/RPM-GPG-KEY-trueconf" GPG_KEY_LOCAL="/etc/pki/rpm-gpg/RPM-GPG-KEY-trueconf" # === GPG KEY === echo "[🔐] Проверка GPG-ключа..." if [ ! -f "$GPG_KEY_LOCAL" ]; then echo "[→] GPG-ключ не найден, загружаем..." if curl -fsSL "$GPG_KEY_URL" -o "$GPG_KEY_LOCAL"; then chmod 644 "$GPG_KEY_LOCAL" echo "[✓] GPG-ключ загружен: $GPG_KEY_LOCAL" else echo "[!] Ошибка загрузки GPG-ключа!" exit 1 fi else echo "[✓] GPG-ключ уже существует." fi # === Получение списка доступных версий === echo "[🔍] Получение списка доступных версий с $BASE_URL..." VERSIONS=$(curl -s "$BASE_URL/" | grep -oP '(?<=href=")[0-9]+(\.[0-9]+){1,2}(?=/")' | sort -Vu) # === Синхронизация по каждой версии === for VERSION in $VERSIONS; do echo "=== 🔄 Синхронизация версии $VERSION ===" REPOID="trueconf-$VERSION" REPO_URL="$BASE_URL/$VERSION/$ARCH/release" # Проверка наличия репозиторной метадаты if curl --silent --head --fail "$REPO_URL/repodata/repomd.xml" > /dev/null; then # Создание временного .repo-файла cat > "$TMP_REPO" <<EOF [$REPOID] name=TrueConf $VERSION baseurl=$REPO_URL enabled=1 gpgcheck=1 gpgkey=file://$GPG_KEY_LOCAL EOF # Скачивание echo "[↓] Скачивание пакетов для $VERSION..." reposync \ --config="$TMP_REPO" \ --repoid="$REPOID" \ --download-path="$DOWNLOAD_DIR/$VERSION/$ARCH" \ --download-metadata \ --downloadcomps else echo "[⚠️] Пропущено: не найдено $REPO_URL/repodata/repomd.xml" fi done # Очистка временного .repo-файла rm -f "$TMP_REPO" echo "[✅] Завершено!" ------------ chmod 777 /root/trueconf.sh |#|#| Команда для выдачи "777" прав скрипту "trueconf.sh" ------------ nano r7.sh |#|#| Команда для создания скрипта, который будет обновлять локальный репозиторий "r7-office" Созданный файл скрипта приведите к следующему виду: #!/bin/bash DESTDIR="/var/www/html/outside_software/" REPOID="r7-office" # Создание кеша метаданных (можно опустить, если не требуется) dnf makecache # Удаление старой директории .repodata, если она есть if [[ -d "$DESTDIR/$REPOID/repodata" ]]; then rm -rf "$DESTDIR/$REPOID/repodata" fi # Скачивание пакетов из репозитория r7-office reposync --repo "$REPOID" --newest-only --downloadcomps -p "$DESTDIR" # Генерация метаданных репозитория (без comps.xml) createrepo --update "$DESTDIR/$REPOID" ------------ chmod 777 /root/r7.sh |#|#| Команда для выдачи "777" прав скрипту "r7.sh" ------------ nano yandex.sh |#|#| Команда для создания скрипта, который будет обновлять локальный репозиторий "yandex-browser" Созданный файл скрипта приведите к следующему виду: #!/bin/bash DESTDIR="/var/www/html/outside_software/" REPOID="yandex-browser" # Создание кеша метаданных (можно опустить, если не требуется) dnf makecache # Удаление старой директории .repodata, если она есть if [[ -d "$DESTDIR/$REPOID/repodata" ]]; then rm -rf "$DESTDIR/$REPOID/repodata" fi # Скачивание пакетов из репозитория yandex-browser reposync --repo "$REPOID" --newest-only --downloadcomps -p "$DESTDIR" # Генерация метаданных репозитория (без comps.xml) createrepo --update "$DESTDIR/$REPOID" ------------ chmod 777 /root/yandex.sh |#|#| Команда для выдачи "777" прав скрипту "yandex.sh" ------------ crontab -e |#|#| Команда для редактирования конфигурационного файла "crontab" Приведите конфигурационный файл "crontab" к следующему виду: 30 1 * * 6 /root/R7.sh 30 2 * * 6 /root/trueconf.sh 30 3 * * 6 /root/yandex.sh Расшифровка на примере первой строки: 30 — минута (30-я минута); 1 — час (1 час ночи); * — каждый день; * — каждый месяц; 6 — каждый 6 день недели(каждую субботу); /root/R7.sh — путь к скрипту, который будет запускаться. -------------------------------------------------------------------------------------------------------------------------------------------------------------- Пример конфигурационного файла-репозитория, который создается на клиентской рабочей станции в каталоге "/etc/yum.repos.d/". В моём случае канфигурационный файл будет называться "App_OS.repo" ------------ nano /etc/yum.repos.d/App_OS.repo |#|#| Команда для создания файла-репозитория на клиентской рабочей станции Созданный файл приведите к следующему виду: [r7-office] name=R7-Office_repo-local.permkrai.ru baseurl=https://10.10.10.10/outside_software_redos/r7-office/ enabled=1 gpgcheck=1 gpgkey=https://10.10.10.10/outside_software_redos/r7-office/RPM-GPG-KEY-R7-OFFICE.public sslverify=0 [trueconf_8.0] name=TrueConf-8.0_repo-local.permkrai.ru baseurl=https://10.10.10.10/outside_software_redos/trueconf/8.0/x86_64/trueconf-8.0/ enabled=1 gpgcheck=1 gpgkey=https://10.10.10.10/outside_software_redos/trueconf/RPM-GPG-KEY-trueconf [yandex-browser] name=Yandex-Browser_repo-local.permkrai.ru baseurl=https://10.10.10.10/outside_software_redos/yandex-browser/ enabled=1 gpgcheck=1 gpgkey=https://10.10.10.10/outside_software_redos/yandex-browser/YANDEX-BROWSER-KEY.GPG ------------ Примечания к выше прописанной конфигурации: 1. http или https зависит от вашей публикации; 2. У ПО TrueConf на 28.07.2025 имеется 7 репозиториев для ОС RedOS(8.0, 7.3.5, 7.3.4, 7.3.3, 7.3.2, 7.3.1, 7.2). В перечисленных ниже строках указывайте нужную вам версию ОС RedOS: [trueconf_8.0] name=TrueConf-8.0_repo-local.permkrai.ru baseurl=https://10.10.10.10/outside_software_redos/trueconf/8.0/x86_64/trueconf-8.0/ ------------ Важный момент! Перед тем как подключить локальные репозитории, убедитесь в том, что у вас не предустановленны сторонние репозитории "r7-release*" и "yandex-browser-release*". Начилие данных репозиториев можно проверить командой "ls -sla /etc/distro.repos.d/". Если сторонние репозитории пердустановлены, то выполните их удаление командой "dnf remove -y r7-release* yandex-browser-release*". Удаление репозиториев важно, т.к. если этого не сделать, то при установке ПО из локальных репозиториев у вас произойдет конфликт "GPG-ключей". ------------ dnf install -y r7-office yandex-browser-stable trueconf |#|#| Команда для установки ПО "r7-office", "yandex-browser-stable" и "trueconf" -------------------------------------------------------------------------------------------------------------------------------------------------------------- На этом инструкция завершена! Всем спасибо за внимание!