Создание структуры репозитория
Установить пакет 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 следующего содержания:
Блок кода |
---|
|
Origin: Debian
Codename: smolensk
Suite: stable
Version: 1.6.0
Architectures: amd64
Components: main contrib non-free
UDebComponents: main
SignWith: yes |
где:
Codename: smolensk
- кодовое имя дистрибутива:
- Для Astra Linux Special Edition РУСБ.10015-01 очередное обновление 1.7 - 1.7_x86-64;
- Для Astra Linux Special Edition РУСБ.10152-02 очередное обновление 1.7 - 4.7_arm64;
- Для Astra Linux Special Edition РУСБ.10015-01 очередное обновление 1.6 - smolensk;
- Для Astra Linux Common Edition - orel.
Suite: stable
- ветка дистрибутива:Version: 1.6.0
- номер версии (можно использовать номер очередного обновления и актуально оперативного обновления);Architectures:
архитектура дистрибутива:- i386 (в Astra Linux не используется);
- amd64;
- source (если репозиторий будет содержать исходный код пакетов);
Components:
компоненты дистрибутива:- main - свободно распространяемое ПО
- contrib - свободно распространяемое ПО с зависимостями от несвободного ПО
- non-free - несвободное ПО
UDebComponents: main
- Udeb-пакетыContents
: - файлы со списком содержимого каждого пакетаSignWith: yes
- подпись репозитория (можно не указывать, если не планируете подписывать репозиторий ключом gnupg)
Информация |
---|
Для очистки ранее сгенерированной базы данных репозитория можно использовать команду:
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 |
Примечание |
---|
|
При появлении ошибки: 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/orel/repository orel contrib main non-free |
Подробнее см. Подключение репозиториев с пакетами в ОС Astra Linux и установка пакетов.
Подписание репозиторияСгенерировать gpg-ключ (RSA или DSA):
Command |
---|
borderColor | #c2e6ff |
---|
bgColor | #e2f3ff |
---|
|
gpg --gen-key |
Команда генерации ключа запросит:
- имя пользователя;
- адрес e-main пользователя;
- пароль;
Ввести запрошенные данные и подтвердить создание ключа.
Убедиться, что в фале <путь_к_репозиторию>/conf/distributions присутствует строка:
Далее выполнить команду:
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
Установить пакет:
Command |
---|
borderColor | #c2e6ff |
---|
bgColor | #e2f3ff |
---|
|
sudo apt install apache2 |
Если репозиторий расположен вне каталога /var/www/html, например, в каталоге /srv/repo
, то при необходимости создать симлинк с репозиторием:
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
|