Данная статья применима к:
- 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]Выполнить экспорт ключа, используя адрес электронной почты:
В результате будет получен файл repo_gpg.key в текущем каталоге, который необходимо скопировать на компьютер, где будет использоваться данный репозиторий, и добавить его в систему (для добавления ключа нужны привилегии суперпользовтаеля):sudo gpg --armor --output repo_gpg.key --export support@astralinux.ru
sudo apt-key add repo_gpg.key
Apache2 + reprepro
Для предоставления доступа к репозиторию с помощью web-службы apache2:
Установить пакет:
sudo apt
install apache2
Если репозиторий расположен вне каталога /var/www/html, например, в каталоге
/srv/repo
, то создать символьную ссылку на репозиторий:sudo
ln -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