Оглавление |
---|
Информация |
---|
Данная статья применима к:
|
Предупреждение |
---|
Установка пакетов из сторонних репозиториев (включая репозиторий Debian) может привести к нарушению работы ОС, и делается на свой страх и риск. Техническая поддержка по вопросам, связанным с пакетами, установленными из сторонних репозиториев не оказывается. При установке пакетов из сторонних репозиториев необходимо соблюдать требования эксплуатационной документации, см. Использование стороннего программного обеспечения в аттестованных информационных системах, функционирующих под управлением Astra Linux Special Edition |
Создание структуры репозитория
Установить пакет reprepro:
Command borderColor #c2e6ff bgColor #e2f3ff sudo apt install reprepro
Создать каталог для размещения репозитория:
Command borderColor #c2e6ff bgColor #e2f3ff sudo mkdir <путь_к_репозиторию>
Создать в каталоге репозитория подкаталог
conf
:Command borderColor #c2e6ff bgColor #e2f3ff sudo mkdir <путь_к_репозиторию>/conf
Создать в подкаталоге
conf
файлdistributions
следующего содержания:Блок кода icon false 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);
<поддерживаемые_архитектуры> — архитектура дистрибутива. Наиболее часто употребляются:
i386 (в Astra Linux не используется);
amd64 — для Astra Linux Special Edition РУСБ.10015-01 очередное обновление 1.6, 1.7, 1.8;
arm64 armhf — для Astra Linux Special Edition РУСБ.10152-02 очередное обновление 4.7;
1.6_x86-64 — для Astra Linux Special Edition РУСБ.10015-01 очередное обновление 1.6;
- source — для репозиториев, содержащих исходные коды пакетов;
Components:
компоненты дистрибутива. Обычно это:main - свободно распространяемое ПО;
contrib - свободно распространяемое ПО с зависимостями от несвободного ПО;
non-free - несвободное ПО.
UDebComponents: main
- Udeb-пакеты;Contents
: - файлы со списком содержимого каждого пакета;SignWith: yes
— подпись репозитория. Эту строчку не нужно указывать, если не планируется подписывать репозиторий ключом gnupg.
Такие списки могут использоваться для дополнительного контроля состава репозитория.Предупреждение Генерация списков файлов требует значительного времени. Информация Помимо конфигурационного файла задать параметры генерации репозиториев можно с помощью параметров вызова команды reprepro или с помощью переменных окружения. Подробное описание всех опций конфигурационного файла, параметров вызова команды и переменных окружения см. в справочной системе man: Command man reprepro Для очистки ранее сгенерированной созданной базы данных репозитория можно использовать команду:
Command sudo reprepro -b <путь_к_репозиторию> clearvanished Для инициализации нового репозитория выполнить команду:
Command borderColor #c2e6ff bgColor #e2f3ff sudo reprepro -b <путь_к_репозиторию> export
Наполнить репозиторий пакетами:
Добавление бинарного deb пакета:
Command borderColor #c2e6ff bgColor #e2f3ff sudo reprepro -b <путь_к_репозиторию> includedeb <кодовое_имя_дистрибутива> <путь_к_пакету/имя_пакета>.deb
Добавление всех пакетов deb из каталога <путь_к_пакетам>:
Command borderColor #c2e6ff bgColor #e2f3ff sudo reprepro -b <путь_к_репозиторию> includedeb <кодовое_имя_дистрибутива> <путь_к_пакетам>/*.deb
Примечание icon false При появлении ошибки: No priority given for '<имя_пакета>', skipping выполнить добавление пакета с игнорированием приоритета с помощью опции -P:
Command borderColor #c2e6ff bgColor #e2f3ff sudo reprepro -P -V -b <путь_к_репозиторию> includedeb <кодовое_имя_дистрибутива> <путь_к_пакету/имя_пакета>.deb
Добавление бинарного udeb пакета:
Command borderColor #c2e6ff bgColor #e2f3ff sudo reprepro -b <путь_к_репозиторию> includeudeb <кодовое_имя_дистрибутива> <путь_к_пакету/имя_пакета>.udeb
Добавление пакета с исходным текстом:
Command borderColor #c2e6ff bgColor #e2f3ff sudo reprepro -b <путь_к_репозиторию> includedsc <кодовое_имя_дистрибутива> <путь_к_пакету/имя_пакета>.dsc
Удаление пакета:
Command borderColor #c2e6ff bgColor #e2f3ff 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):
Command borderColor #c2e6ff bgColor #e2f3ff gpg --gen-key
Команда генерации ключа запросит:
имя пользователя;
адрес e-main пользователя;
пароль;
- Ввести запрошенные данные и подтвердить создание ключа.
Убедиться, что в файле /<путь_к_репозиторию>/conf/distributions присутствует строка:
Блок кода icon false SignWith: yes
Выполнить команду:
Command borderColor #c2e6ff bgColor #e2f3ff sudo reprepro --ask-passphrase -b <путь_к_репозиторию/имя> export
параметр --ask-passphrase запрашивает пароль для gpg-ключа.
Наполнить репозиторий добавляя пакеты, например:
Command borderColor #c2e6ff bgColor #e2f3ff sudo reprepro --ask-passphrase -b <путь_к_репозиторию/имя> includedeb <кодовое имя дистрибутива> <имя_пакета>.deb
Чтобы пользоваться подписанным репозиторием:
На компьютере где создавался репозиторий получить список ключей:
Command borderColor #c2e6ff bgColor #e2f3ff Title 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]Выполнить экспорт ключа, используя адрес электронной почты:
Command borderColor #c2e6ff bgColor #e2f3ff sudo gpg --armor --output repo_gpg.key --export support@astralinux.ru
В результате будет получен файл repo_gpg.key в текущем каталоге, который необходимо скопировать на компьютер, где будет использоваться данный репозиторий, и добавить его в систему (для добавления ключа нужны привилегии суперпользовтаеля):
Command borderColor #c2e6ff bgColor #e2f3ff sudo apt-key add repo_gpg.key
Apache2 + reprepro
Для предоставления доступа к репозиторию с помощью web-службы apache2:
Установить пакет:
Command borderColor #c2e6ff bgColor #e2f3ff sudo apt
install apache2
Если репозиторий расположен вне каталога /var/www/html, например, в каталоге
/srv/repo
, то cоздать создать символьную ссылку на репозиторий:Command borderColor #c2e6ff bgColor #e2f3ff 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:
Command borderColor #c2e6ff bgColor #e2f3ff sudo systemctl restart apache2