-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathRepositories_outside_software
More file actions
268 lines (230 loc) · 15.8 KB
/
Repositories_outside_software
File metadata and controls
268 lines (230 loc) · 15.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
Создание локального репозиториев со сторонним ПО для ОС 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:P@ssw0rD@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"
--------------------------------------------------------------------------------------------------------------------------------------------------------------
На этом инструкция завершена! Всем спасибо за внимание!