Привет Хабр! Этой статьей мы завершаем цикл материалов по развертыванию ПО АСКОН в закрытых внутренних сетях (предыдушие статьи: для Astra Linux, РЕД ОС, Альт Рабочая станция). Ее подготовил руководитель методического направления команды КОМПАС-3D.

Рассмотрим еще один сценарий: как скачанные пакеты КОМПАС-3D «упаковать» в образ ISO и использовать его как готовый локальный репозиторий, не требующий никаких манипуляций на сервере. Не будем вас томить, выпуская отдельные статьи по каждой из поддерживаемых операционок. Расскажем сразу о всех трёх: Astra Linux SE 1.8, Альт 11 и РЕД ОС 8.0.

1.Начнем с Astra Linux SE 1.8

Подключим репозиторий для Astra Linux SE 1.8 согласно справке https://help.ascon.ru/KOMPAS/25/ru-RU/astra_linux_setup.html

Создадим папку для скачиваемых пакетов и перейдем в неё

mkdir ~/packages

cd ~/packages

Команду поиска и сохранения списка скачиваемых пакетов позаимствуем из статьи

apt-cache depends --recurse --no-recommends --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances ascon-kompas3d-v25-full ascon-kompas-coredump watcher | grep "^\w" | sort -u | grep ascon > list.txt

После чего формируется файл list.txt, в котором перечислен список требуемых пакетов.

Скачаем эти самые пакеты согласно файлу list.txt:

apt download $(cat list.txt)

Выполним процесс генерации метаданных для наших пакетов

dpkg-scanpackages .  > Packages

И можно сказать, что у нас получился локальный репозиторий в папке, который нам надо упаковать в ISO.

Установим утилиту для создания образов - genisoimage, если она не установлена

sudo apt install genisoimage

Запустим сборку ISO-образа

genisoimage -udf -allow-limited-size -r -o repo_kompas_astra.iso ~/packages

Размер образа получается достаточно большим. Обратите внимание, что ваша файловая система должна поддерживать файлы более 4Gb.

Несем образ туда, где хотим его использовать.

Создаем там папку точки подключения

sudo mkdir /mnt/repo_kompas

Смонтируем в эту папку ISO-образ

sudo mount -o loop /путь/к/вашему/образу/repo_kompas_astra.iso /mnt/repo_kompas

Создадим файл конфигурации репозитория, который обычно размещается в папке /etc/apt/sources.list.d

sudo nano /etc/apt/sources.list.d/repo_kompas_local.list

Содержимое файла

deb [trusted=yes] file:/mnt/repo_kompas ./

Обновляем данные по подключенным репозиториям

sudo apt update

Делаем установку КОМПАС-3D из подключенного репозитория и проверяем репозиторий на наличие пакетов. Например, так

apt info ascon-kompas3d-v25-full

Готово!

2.Продолжим с РЕД ОС 8.0

Тут почти всё похоже, кроме того, что в качестве пакетного менеджера используется DNF.

Подключается к репозиторию для РЕД ОС. Как и ранее, согласно справке https://help.ascon.ru/KOMPAS/25/ru-RU/red_setup.html

Создаем папку для скачиваемых пакетов

mkdir ~/packages
cd ~/packages

Поиск и сохранение списка скачиваемых пакетов выполняется командой. Все как в статье

dnf repoquery --requires --recursive --resolve ascon-kompas3d-v25-full ascon-kompas-coredump-watcher | sort -u | grep -E 'ascon|kompas' > list.txt

После чего формируется файл list.txt, в котором перечислен список требуемых пакетов.

Скачиваем пакеты.

dnf download $(cat list.txt)

Готовим метаданные для репозитория

createrepo --database ~/packages

Для сборки образа будем использовать ту же самую утилиту genisoimage. Если она не установлена, то ставим её

sudo dnf install genisoimage

Запустим сборку ISO-образа

genisoimage -udf -allow-limited-size -r -o repo_kompas_redos.iso ~/packages

Размер образа получается достаточно большим. Обратите внимание, что ваша файловая система должна поддерживать файлы более 4Gb.

На компьютере назначения создаем папку точки подключения образа

sudo mkdir /mnt/repo_kompas

Смонтируем образ в эту папку

sudo mount -o loop /путь/к/вашему/образу/repo_kompas_redos.iso /mnt/repo_kompas

Создадим файл конфигурации репозитория, который обычно размещается в папке /etc/yum.repos.d

sudo nano repo_kompas.repo

С содержимым файла

[kompas-local]
name=KOMPAS-3D Local repo
baseurl=file:///mnt/repo_kompas/
enabled=1
gpgcheck=0

Проверим подключения репозитория

sudo dnf makecache
dnf repolist

И этот готов!

3. Закончим с Альт 11

С «Альт» все будет немного иначе по сравнению с Astra Linux и РЕД ОС.

Подключим репозиторий для Альт 11. Все согласно справке, как и предыдущие разы https://help.ascon.ru/KOMPAS/25/ru-RU/alt_setup.html

Создадим папку для скачиваемых пакетов с двумя подкаталогами

mkdir -p ~/packages/x86_64/RPMS.dir
cd ~/packages/x86_64/RPMS.dir

Скачивание пакетов выполним через их копирование из локального кэша APT. Для этого предварительно очистим его

apt-get clean

Запустим процесс скачивания пакетов

apt-get install -d ascon-kompas3d-v25-full ascon-common-coredump-watcher 

В процессе скачивания загруженные пакеты будут сохранены в папке кэша пакетного менеджера APT  /var/cache/apt/archives/ . Необходимо скопировать эти файлы в созданную ранее папку.

Создание метаданных для скачанных пакетов не потребуется, потому что в ОС «Альт» можно папку с пакетами подключить как репозиторий, но об этом чуть позже.

Мы собираем образ ISO, предварительно установив утилиту для создания образов - genisoimage, если она не установлена

apt-get install genisoimage

Запустим сборку ISO-образа

genisoimage -udf -allow-limited-size -r -o repo_kompas_alt.iso ~/packages/x86_64/RPMS.dir

Размер образа получается достаточно большим. Обратите внимание, что ваша файловая система должна поддерживать файлы более 4Gb.

Передаем получившийся образ адресату. 

Создаем папку точки подключения

su -
mkdir /mnt/repo_kompas

Смонтируем в эту папку ISO-образ

mount -o loop /путь/к/вашему/образу/repo_kompas_alt.iso /mnt/repo_kompas

Подключаем репозиторий

apt-repo add 'rpm-dir file:/mnt/repo_kompas x86_64 dir'

Обновляем данные по подключенным репозиториям и проверяем, что все на месте

apt-get update
apt-repo list

Готово!

Собственно, у меня на этом всё. Для знающих людей новую планету не открыл, а для тех, кто только входит в мир Linux, полагаю, что горизонты несколько расширил.