Данная статья применима к:
- Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.8)
- Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7)
- Astra Linux Special Edition РУСБ.10152-02 (очередное обновление 4.7)
Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6)
Astra Linux Special Edition РУСБ.10015-16 исп. 1 и исп. 2
Astra Linux Special Edition РУСБ.10265-01 (очередное обновление 8.1)
Astra Linux Common Edition 2.12
Установка пакетов из сторонних репозиториев (включая репозиторий Debian) может привести к нарушению работы ОС, и делается на свой страх и риск.
Техническая поддержка по вопросам, связанным с пакетами, установленными из сторонних репозиториев не оказывается. При установке пакетов из сторонних репозиториев необходимо соблюдать требования эксплуатационной документации, см. Использование стороннего программного обеспечения в аттестованных информационных системах, функционирующих под управлением Astra Linux Special Edition
Создание структуры репозитория
Установить пакет reprepro:
sudo apt install repreproСоздать каталог для размещения репозитория:
sudo mkdir <путь_к_репозиторию>Создать в каталоге репозитория подкаталог
conf:sudo mkdir <путь_к_репозиторию>/confСоздать в подкаталоге
confфайлdistributionsследующего содержания:Origin: Debian Codename: <кодовое_имя_дистрибутива> Suite: <ветка_дистрибутива> Version: <версия_дистрибутива> Architectures: <поддерживаемые_архитектуры> Components: main contrib non-free UDebComponents: main SignWith: yes
где:
<кодовое_имя_дистрибутива>— кодовое имя дистрибутива:- 1.8_x86-64 — для Astra Linux Special Edition РУСБ.10015-01 очередное обновление 1.8;
1.7_x86-64 — для Astra Linux Special Edition РУСБ.10015-01 очередное обновление 1.7;
4.7_arm — для Astra Linux Special Edition РУСБ.10152-02 очередное обновление 4.7;
1.6_x86-64 — для Astra Linux Special Edition РУСБ.10015-01 очередное обновление 1.6;
2.12_x86-64 — для Astra Linux Common Edition.
<ветка_дистрибутива> — ветка дистрибутива:
stable
current
unstable
<версия_дистрибутива> — номер версии (можно использовать номер очередного обновления и актуально оперативного обновления, например 1.7.5);
<поддерживаемые_архитектуры> — архитектура дистрибутива. Наиболее часто употребляются:
amd64 — для Astra Linux Special Edition РУСБ.10015-01 очередное обновление 1.6, 1.7, 1.8;
arm64 — для Astra Linux Special Edition РУСБ.10152-02 очередное обновление 4.7;
- source — для репозиториев, содержащих исходные коды пакетов;
Components:компоненты дистрибутива. Обычно это:main - свободно распространяемое ПО;
contrib - свободно распространяемое ПО с зависимостями от несвободного ПО;
non-free - несвободное ПО.
UDebComponents: main- Udeb-пакеты;SignWith: yes— подпись репозитория. Эту строчку не нужно указывать, если не планируется подписывать репозиторий ключом gnupg.
Такие списки могут использоваться для дополнительного контроля состава репозитория.Генерация списков файлов требует значительного времени.Помимо конфигурационного файла задать параметры генерации репозиториев можно с помощью параметров вызова команды reprepro или с помощью переменных окружения. Подробное описание всех опций конфигурационного файла, параметров вызова команды и переменных окружения см. в справочной системе man:man repreproДля очистки ранее созданной базы данных репозитория можно использовать команду:sudo reprepro -b <путь_к_репозиторию> clearvanishedДля инициализации нового репозитория выполнить команду:
sudo reprepro -b <путь_к_репозиторию> exportНаполнить репозиторий пакетами:
Добавление бинарного deb пакета:
sudo reprepro -b <путь_к_репозиторию> includedeb <кодовое_имя_дистрибутива> <путь_к_пакету/имя_пакета>.debДобавление всех пакетов deb из каталога <путь_к_пакетам>:
sudo reprepro -b <путь_к_репозиторию> includedeb <кодовое_имя_дистрибутива> <путь_к_пакетам>/*.debДобавление бинарного udeb пакета:
sudo reprepro -b <путь_к_репозиторию> includeudeb <кодовое_имя_дистрибутива> <путь_к_пакету/имя_пакета>.udebДобавление пакета с исходным текстом:
sudo reprepro -b <путь_к_репозиторию> includedsc <кодовое_имя_дистрибутива> <путь_к_пакету/имя_пакета>.dscУдаление пакета:
sudo reprepro -b <путь_к_репозиторию> remove <кодовое_имя_дистрибутива> <имя_пакета_без_версии>
Использование неподписанного репозитория
Использование неподписанных репозиториев по умолчанию запрещено. Рекомендуется использовать только подписанные репозитории. См. далее Подписание репозитория.
Для того, чтобы разрешить использовать неподписанный репозиторий:
В описание репозитория на компьютере, на котором используется репозиторий, добавить параметр [trusted=yes]. При этом строка описания репозитория будет выглядеть так:
deb [trusted=yes] https://download.astralinux.ru/astra/stable/2.12_x86-64/repository stable contrib main non-free
Подробнее см. Подключение репозиториев с пакетами в ОС Astra Linux и установка пакетов.
Подписание репозитория
Для подписания репозитория:
Создать gpg-ключ (RSA или DSA):
gpg --gen-keyКоманда генерации ключа запросит:
имя пользователя;
адрес e-main пользователя;
пароль;
- Ввести запрошенные данные и подтвердить создание ключа.
Убедиться, что в файле /<путь_к_репозиторию>/conf/distributions присутствует строка:
SignWith: yes
Выполнить команду:
sudo reprepro --ask-passphrase -b <путь_к_репозиторию/имя> exportпараметр --ask-passphrase запрашивает пароль для gpg-ключа.Наполнить репозиторий добавляя пакеты, например:
sudo reprepro --ask-passphrase -b <путь_к_репозиторию/имя> includedeb <кодовое имя дистрибутива> <имя_пакета>.deb
Чтобы пользоваться подписанным репозиторием:
На компьютере где создавался репозиторий получить список ключей:
gpg --list-keys
gpg: проверка таблицы доверия
gpg: marginals needed: 3 completes needed: 1 trust model: pgp
gpg: глубина: 0 достоверных: 1 подписанных: 0 доверие: 0-, 0q, 0n, 0m, 0f, 1u
gpg: срок следующей проверки таблицы доверия 2024-02-10
/home/le/.gnupg/pubring.kbx
---------------------------
pub rsa3072 2022-02-10 [SC] [ годен до: 2024-02-10]
ECBD2F097D49CD738EB378201623A5978DBFC107
uid [ абсолютно ] support <support@astralinux.ru>
sub rsa3072 2022-02-10 [E] [ годен до: 2024-02-10]Выполнить экспорт ключа, используя для идентификации экспортируемого ключа указанный в нем адрес электронной почты:
sudo gpg --armor --output repo_gpg.key --export support@astralinux.ruВ результате экспорта в текущем каталоге будет создан файл repo_gpg.key. Этот файл скопировать на компьютер, где будет использоваться данный репозиторий, и зарегистрировать его. Подробнее см. статью Установка ключей для сторонних репозиториев пакетов.
Предоставление доступа к репозиторию с помощью Apache2
Для создания нового сервера, предоставляющего доступ к репозиторию:
Установить пакет:
sudo aptinstall apache2Если репозиторий расположен вне каталога /var/www/html, например, в каталоге
/srv/repo, то создать символьную ссылку на репозиторий:sudoln -s /srv/repo /var/www/html/repoВ файл /etc/apache2/sites-enabled/000-default.conf после строки
DocumentRoot /var/www/htmlдобавить:<Directory /var/www/html/repo> Options Indexes MultiViews FollowSymLinks AllowOverride None Order Deny,Allow Allow from all </Directory>
Перезапустить службу apache2:
sudo systemctl restart apache2