Данная статья применима к:
|
Установка пакетов из сторонних репозиториев (включая репозиторий Debian) может привести к нарушению работы ОС, и делается на свой страх и риск. Техническая поддержка по вопросам, связанным с пакетами, установленными из сторонних репозиториев не оказывается. При установке пакетов из сторонних репозиториев необходимо соблюдать требования эксплуатационной документации, см. Использование стороннего программного обеспечения в аттестованных информационных системах, функционирующих под управлением Astra Linux Special Edition |
Установить пакет reprepro:
sudo apt install reprepro |
Создать каталог для размещения репозитория:
|
Создать в каталоге репозитория подкаталог conf:
|
Создать в подкаталоге conf файл distributions следующего содержания:
Origin: Debian Codename: <кодовое_имя_дистрибутива> Suite: <ветка_дистрибутива> Version: <версия_дистрибутива> Architectures: <поддерживаемые_архитектуры> Components: main contrib non-free UDebComponents: main SignWith: yes |
где:
<кодовое_имя_дистрибутива> — кодовое имя дистрибутива:
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;
Components: компоненты дистрибутива. Обычно это:
main - свободно распространяемое ПО;
contrib - свободно распространяемое ПО с зависимостями от несвободного ПО;
non-free - несвободное ПО.
UDebComponents: main - Udeb-пакеты;
SignWith: yes — подпись репозитория. Эту строчку не нужно указывать, если не планируется подписывать репозиторий ключом gnupg.
| Генерация списков файлов требует значительного времени. |
Помимо конфигурационного файла задать параметры генерации репозиториев можно с помощью параметров вызова команды reprepro или с помощью переменных окружения. Подробное описание всех опций конфигурационного файла, параметров вызова команды и переменных окружения см. в справочной системе man:
|
Для очистки ранее созданной базы данных репозитория можно использовать команду:
| sudo reprepro -b <путь_к_репозиторию> clearvanished |
Для инициализации нового репозитория выполнить команду:
sudo reprepro -b <путь_к_репозиторию> export |
Наполнить репозиторий пакетами:
Добавление бинарного deb пакета:
sudo reprepro -b <путь_к_репозиторию> includedeb <кодовое_имя_дистрибутива> <путь_к_пакету/имя_пакета>.deb |
Добавление всех пакетов deb из каталога <путь_к_пакетам>:
sudo reprepro -b <путь_к_репозиторию> includedeb <кодовое_имя_дистрибутива> <путь_к_пакетам>/*.deb |
При появлении ошибки: No priority given for '<имя_пакета>', skipping выполнить добавление пакета с игнорированием приоритета с помощью опции -P:
|
Добавление бинарного udeb пакета:
|
Добавление пакета с исходным текстом:
|
Удаление пакета:
|
Использование неподписанных репозиториев по умолчанию запрещено. Рекомендуется использовать только подписанные репозитории. См. далее Подписание репозитория. |
Для того, чтобы разрешить использовать неподписанные репозитории следует в описание репозитория на компьютере, на котором выполняется установка, добавить параметр [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: проверка таблицы доверия |
Выполнить экспорт ключа, используя адрес электронной почты:
sudo gpg --armor --output repo_gpg.key --export support@astralinux.ru |
В результате будет получен файл repo_gpg.key в текущем каталоге, который необходимо скопировать на компьютер, где будет использоваться данный репозиторий, и добавить его в систему (для добавления ключа нужны привилегии суперпользовтаеля):
sudo apt-key add repo_gpg.key |
Для предоставления доступа к репозиторию с помощью web-службы apache2:
Установить пакет:
sudo apt |
Если репозиторий расположен вне каталога /var/www/html, например, в каталоге /srv/repo , то создать символьную ссылку на репозиторий:
sudo |
В файл /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:
|