Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

Оглавление

Информация

Данная статья применима к:

  • 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

Создание структуры репозитория

  1. Установить пакет reprepro:

    Command
    borderColor#c2e6ff
    bgColor#e2f3ff
    sudo apt install reprepro
  2. Создать каталог для размещения репозитория:

    Command
    borderColor#c2e6ff
    bgColor#e2f3ff

    sudo mkdir <путь_к_

...

  1. репозиторию>

...

  1. Создать в каталоге репозитория

...

  1. подкаталог conf:

    Command
    borderColor#c2e6ff
    bgColor#e2f3ff

    sudo mkdir <путь_к_

...

  1. репозиторию>/

...

  1. conf

  2. Создать в

...

  1. подкаталоге conf файл distributions

...

  1. следующего содержания:

Command
borderColor#c2e6ff
bgColor#e2f3ff

sudo mcedit <путь_к_репозиторию/имя>/conf/distributions

...

  1. Блок кода
    iconfalse
    Origin: Debian

...

  1. 
    Codename:

...

  1.  <кодовое_имя_дистрибутива>
    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.

    Также можно использовать опцию Contents:, включающую автоматическую генерацию файлов со списками файлов, входящих в бинарные пакеты. 
    Предупреждение
    Генерация списков файлов требует значительного времени.
    Такие списки могут использоваться для дополнительного контроля состава репозитория. 
    Информация
    Помимо конфигурационного файла задать параметры генерации репозиториев можно с помощью параметров вызова команды reprepro или с помощью переменных окружения. Подробное описание всех опций конфигурационного файла, параметров вызова команды и переменных окружения см. в справочной системе man:
    Command
    man reprepro
  2. Для очистки ранее созданной базы данных репозитория можно использовать команду:

    Command
    sudo reprepro -b <путь_к_репозиторию> clearvanished
  3. Для инициализации нового репозитория выполнить команду

где:

Codename: smolensk - кодовое имя дистрибутива: smolensk, orel ...
Suite: stable - ветка дистрибутива: stable, current, unstable
Version: 1.6.0 - номер версии
Architectures: amd64 - архитектура дистрибутива: i386, amd64, source (если репозиторий будет содержать исходный код пакетов)
Components: main contrib non-free - компоненты дистрибутива: main - СПО, contrib - СПО с зависимостями от несвободного, non-free - несвободное ПО
UDebComponents: main - Udeb-пакеты
Contents: - файлы со списком содержимого каждого пакета
SignWith: yes - подпись репозитория (можно не указывать, если не планируете подписывать репозиторий ключом gnupg)

...

  1. :

    Command
    borderColor#c2e6ff
    bgColor#e2f3ff
    sudo reprepro -b <путь_к_

...

  1. репозиторию> export
  2. Наполнить

...

  1. репозиторий пакетами:

    1. Добавление бинарного deb пакета:

      Command
      borderColor#c2e6ff
      bgColor#e2f3ff
      sudo reprepro -

...

    1. b <путь_к_

...

    1. репозиторию> includedeb <кодовое_имя_

...

    1. дистрибутива> <путь_к_пакету/имя_пакета>.deb
    2. Добавление всех пакетов deb из каталога <путь_к_пакетам>:

      Command
      borderColor#c2e6ff
      bgColor#e2f3ff
      sudo reprepro -

...

    1. b <путь_к_

...

    1. репозиторию> includedeb <кодовое_имя_

...

    1. дистрибутива> <путь_к_пакетам>/*.deb
      Примечание
      iconfalse

      При появлении ошибки: No priority given for '<имя_пакета>', skipping

...

    1. выполнить добавление пакета с игнорированием приоритета с помощью опции -P:

      Command
      borderColor#c2e6ff
      bgColor#e2f3ff

      sudo reprepro -P -V -b <путь_к_

...

    1. репозиторию> includedeb <кодовое_имя_

...

    1. дистрибутива> <путь_к_пакету/имя_пакета>.deb

    2. Добавление бинарного udeb пакета:

      Command
      borderColor#c2e6ff
      bgColor#e2f3ff

      sudo reprepro -

...

    1. b <путь_к_

...

    1. репозиторию> includeudeb <кодовое_имя_

...

    1. дистрибутива> <путь_к_пакету/имя_пакета>.udeb

    2. Добавление пакета с исходным текстом:

      Command
      borderColor#c2e6ff
      bgColor#e2f3ff

      sudo reprepro -

...

    1. b <путь_к_

...

    1. репозиторию> includedsc <кодовое_имя_

...

    1. дистрибутива> <путь_к_пакету/имя_пакета>.dsc

    2. Удаление пакета:

      Command
      borderColor#c2e6ff
      bgColor#e2f3ff

      sudo reprepro -

...

    1. b <путь_к_

...

    1. репозиторию> remove <кодовое_имя_

...

Подписывание репозитория

...

    1. дистрибутива> <имя_пакета_без_версии>

...

Использование неподписанного репозитория

Предупреждение

Использование неподписанных репозиториев по умолчанию запрещено. Рекомендуется использовать только подписанные репозитории. См. далее Подписание репозитория.

Для того, чтобы разрешить использовать неподписанный репозиторий:

В описание репозитория на компьютере, на котором используется репозиторий, добавить параметр [trusted=yes]. При этом строка описания репозитория будет выглядеть так:

Блок кода
deb [trusted=yes] https://download.astralinux.ru/astra/stable/2.12_x86-64/repository stable contrib main non-free

Подробнее см. Подключение репозиториев с пакетами в ОС Astra Linux и установка пакетов.

Якорь
signrepo
signrepo
Подписание репозитория

Для подписания репозитория:

  1. Создать

  1. gpg-ключ (RSA или DSA):

    Command
    borderColor#c2e6ff
    bgColor#e2f3ff

...

  1. gpg --gen-key

...

  1. Команда генерации ключа запросит:

    • имя пользователя;

    • адрес e-main пользователя;

    • пароль;

  2. Ввести запрошенные данные и подтвердить создание ключа.
  3. Убедиться, что в файле /<путь_к_

...

  1. репозиторию>/conf/distributions

...

  1. присутствует строка:

...

  1. Блок кода
    iconfalse
    SignWith: yes

...

  1. Выполнить команду:

    Command
    borderColor#c2e6ff
    bgColor#e2f3ff
    sudo reprepro --ask-passphrase -

...

  1. b <путь_к_репозиторию/имя> export

...

  1. параметр --ask-passphrase запрашивает пароль для gpg-ключа

...

  1. .

...

  1. Наполнить репозиторий добавляя пакеты, например:

    Command
    borderColor#c2e6ff
    bgColor#e2f3ff
    sudo reprepro --ask-passphrase -b <путь_к_репозиторию/имя> includedeb <кодовое имя дистрибутива> <имя_пакета>.deb

Чтобы пользоваться подписанным репозиторием

...

:

  1. На компьютере где создавался репозиторий

...

  1. получить список ключей:

    Command
    borderColor#c2e6ff
    bgColor#e2f3ff
    Title

...

  1. gpg --list-keys

В результате получится примерно такой результат:

Информация
iconfalse
pub    2048R/2578DA4E 2017-06-19
uid RusBITech (Key for signing) <mail@rusbitech.ru>
  1. 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]

  2. Выполнить экспорт ключа, используя для идентификации экспортируемого ключа указанный в нем адрес электронной почты

...

  1. :

    Command
    borderColor#c2e6ff
    bgColor#e2f3ff
    sudo gpg --armor --output repo_gpg.key --export

...

  1. support@astralinux.ru
  2. В результате

...

  1. экспорта в текущем каталоге будет создан файл repo_gpg.key

...

  1. . Этот файл скопировать на компьютер, где будет использоваться данный репозиторий,

...

  1. и зарегистрировать его. Подробнее см. статью Установка ключей для сторонних репозиториев пакетов.

Предоставление доступа к репозиторию с помощью Apache2

Предупреждение
Для настройки доступа к репозиторию с помощью существующего web-сервера обратитесь к администратору этого сервера.

Для создания нового сервера, предоставляющего доступ к репозиторию:

Command
borderColor#c2e6ff
bgColor#e2f3ff
sudo apt-key add repo_gpg.key

...

  1. Установить пакет:

    Command
    borderColor#c2e6ff
    bgColor#e2f3ff
    sudo apt install apache2
  2. Если репозиторий расположен

...

  1. вне каталога /var/www/html, например, в каталоге /srv/repo , то

...

  1. создать символьную ссылку на репозиторий:

    Command
    borderColor#c2e6ff
    bgColor#e2f3ff
    sudo ln -s /srv/repo /var/www/html/repo
  2. В файл /etc/apache2/sites-enabled/000-default.conf после строки DocumentRoot /var/www/html добавить:

...

  1. Блок кода

...

iconfalse
  1. <Directory /var/www/html/repo>

...

  1. 
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order Deny,Allow
        Allow from all
    </Directory>
  2. Перезапустить

...

  1. службу apache2:

    Command
    borderColor#c2e6ff
    bgColor#e2f3ff

    sudo systemctl restart apache2