APT в ALT Linux/OwnRepo: различия между версиями

Материал из ALT Linux Wiki
Нет описания правки
Нет описания правки
Строка 9: Строка 9:
В каталоге {{path|/var/www/repo/extra}} будет находится наш репозиторий. Создадим необходимую структуру для нового компонента:
В каталоге {{path|/var/www/repo/extra}} будет находится наш репозиторий. Создадим необходимую структуру для нового компонента:


  mkdir -p /var/www/repo/extra/x86_64/RPMS.extra
  # mkdir -p /var/www/repo/extra/x86_64/RPMS.extra
 
x86_64 - является архитектурой
extra - суффикс компонента


== Наполнение компонента и создание индексов ==
== Наполнение компонента и создание индексов ==


Установим apt-repo-tools:
Установим apt-repo-tools:
  apt-get install apt-repo-tools
  # apt-get install apt-repo-tools


Скопируем пакеты RPM в каталог {{path|/var/www/repo/extra/x86_64/RPMS.extra}}:
Скопируем пакеты RPM в каталог {{path|/var/www/repo/extra/x86_64/RPMS.extra}}:
  cp IFCPlugin-x86_64.rpm /var/www/repo/extra/x86_64/RPMS.extra
  # cp -v *.rpm /var/www/repo/extra/x86_64/RPMS.extra
 
Устанавливаем утилиты работы с ЭП и создания индексов
# apt-get install gnupg apt-repo-tools
 
== Создание ключей GPG ==
 
Создаем пару ключей GPG на 5 лет:
# gpg --gen-key
Выберите тип ключа:
  (1) RSA и RSA (по умолчанию)
  (2) DSA и Elgamal
  (3) DSA (только для подписи)
  (4) RSA (только для подписи)
Ваш выбор?
 
// '''Пишем 1'''. Так как нам необходим тип ключа RSA и RSA
 
длина ключей RSA может быть от 1024 до 4096 бит.
Какой размер ключа Вам необходим?
 
// Пишем размер ключа '''2048'''
 
Запрошенный размер ключа - 2048 бит
Выберите срок действия ключа.
        0 = без ограничения срока действия
      <n>  = срок действия - n дней
      <n>w = срок действия - n недель
      <n>m = срок действия - n месяцев
      <n>y = срок действия - n лет
Срок действия ключа?
 
// '''Ставим 0''' без ограничения срока действия.
 
Ключ действителен до Пн 23 ноя 2026 13:09:35 MSK
Все верно? (y/N)
 
// '''Ставим y'''
 
Для идентификации Вашего ключа необходим ID пользователя. Программа создаст его
из Вашего имени, комментария и адреса электронной почты в виде:
    "Baba Yaga (pensioner) <yaga@deepforest.ru>"
 
Ваше настоящее имя: (Пишем наше настоящее имя)
Адрес электронной почты: (Пишем адрес электронной почты)
Комментарий:
Вы выбрали следующий ID пользователя:
    "Repo Signer <admin@company.net>"
 
Сменить (N)Имя, (C)Комментарий, (E)адрес или (O)Принять/(Q)Выход?
 
// '''Пишем O''' (Принять)
 
Для защиты секретного ключа необходима фраза-пароль.
 
Далее, система предложит нам сгенерировать случайные числа. Для этого нужно следовать инструкции, которая будет написана в нашем терминале (движение мышкой, набор текста и т.д)
 
В конце, когда сформируется отпечаток ключа GPG, можно увидеть сформированный ID
'''Пример:
ID: 261948CA
Отпечаток (fingerprint): 966F F72F 03F4 AA67 6CI4  13FA D7CE F279 2619 49CA'''
 
Теперь нам необходимо применить наш ID GPG ключа для создания и подписи индексов:
 
# genbasedir --create --bloat --progress --sign --default-key=261948CA --topdir=/var/www/repo/extra x86_64 extra
 
'''ВАЖНО'''  Обратите внимание, что в поле --default-key= Нужно использовать наш ID (в моем случае 261948CA)
 
Далее, вводим фразу-пароль для доступа к секретному ключу пользователя.
 
Добавляем свой ключ, использованный для подписанного репозитория:
Создаем файл:
# nano /etc/apt/vendors.list.d/own.list
 
И в этом файле (own.list) прописываем наш fingerprint и имя :
 
simple-key "own" {
        Fingerprint "966FF72F03F4AA676CI413FAD7CEF279261949CA";
        Name "Ваше настоящее имя <ваша электронная почта>"%;
}
 
'''ВАЖНО''' Не забудьте поставить ; после поля Fingerprint и name.
 
'''ВАЖНО2''' Отпечаток (Fingerprint) указываем без пробелов.
 
Импортируем публичный ключ в общую базу alt-gpgkeys:
 
# gpg --output ~/repo.gpg --export 261948CA
# gpg --no-default-keyring --keyring /usr/lib/alt-gpgkeys/pubring.gpg --import ~/repo.gpg


Создадим индексы:
'''ВАЖНО3''' ВНИМАНИЕ! При обновлении пакета alt-gpgkeys ключ подписи репозитория будет удалён. Необходимо или поставить пакет alt-gpgkeys на Hold (https://www.altlinux.org/Hold) или написать filetrigger по добавлению ключа в эту базу при обновлении пакета.
genbasedir --create --topdir=/var/www/repo/extra x86_64 extra


Обновление индексов:
Устанавливаем утилиту apt-repo:
  genbasedir --topdir=/var/www/repo/extra x86_64 extra
  # apt-get install apt-repo


== Подключение созданного репозитория ==
Добавляем свой репозиторий с ключом для проверки:
# echo "rpm [own] file:/var/extra x86_64 extra" > /etc/apt/sources.list


Сначала установим утилиту apt-repo:
apt-get install apt-repo
Затем добавим локальный репозиторий в систему:
apt-repo add 'rpm file:/var/www/repo/extra x86_64 extra'


[[Категория:APT]]
[[Категория:APT]]
{{Category navigation|title=APT|category=APT|sortkey={{SUBPAGENAME}}}}
{{Category navigation|title=APT|category=APT|sortkey={{SUBPAGENAME}}}}

Версия от 16:32, 24 ноября 2021

Создание собственного репозитория

Задача: создать собственный репозиторий со своими пакетами.

Добавляем свой компонент

Новый компонент будет называться extra.

В каталоге /var/www/repo/extra будет находится наш репозиторий. Создадим необходимую структуру для нового компонента:

# mkdir -p /var/www/repo/extra/x86_64/RPMS.extra

x86_64 - является архитектурой extra - суффикс компонента

Наполнение компонента и создание индексов

Установим apt-repo-tools:

# apt-get install apt-repo-tools

Скопируем пакеты RPM в каталог /var/www/repo/extra/x86_64/RPMS.extra:

# cp -v *.rpm /var/www/repo/extra/x86_64/RPMS.extra

Устанавливаем утилиты работы с ЭП и создания индексов

# apt-get install gnupg apt-repo-tools

Создание ключей GPG

Создаем пару ключей GPG на 5 лет:

# gpg --gen-key

Выберите тип ключа:

  (1) RSA и RSA (по умолчанию)
  (2) DSA и Elgamal
  (3) DSA (только для подписи)
  (4) RSA (только для подписи)

Ваш выбор?

// Пишем 1. Так как нам необходим тип ключа RSA и RSA

длина ключей RSA может быть от 1024 до 4096 бит. Какой размер ключа Вам необходим?

// Пишем размер ключа 2048

Запрошенный размер ключа - 2048 бит Выберите срок действия ключа.

        0 = без ограничения срока действия
     <n>  = срок действия - n дней
     <n>w = срок действия - n недель
     <n>m = срок действия - n месяцев
     <n>y = срок действия - n лет

Срок действия ключа?

// Ставим 0 без ограничения срока действия.

Ключ действителен до Пн 23 ноя 2026 13:09:35 MSK Все верно? (y/N)

// Ставим y

Для идентификации Вашего ключа необходим ID пользователя. Программа создаст его из Вашего имени, комментария и адреса электронной почты в виде:

   "Baba Yaga (pensioner) <yaga@deepforest.ru>"

Ваше настоящее имя: (Пишем наше настоящее имя) Адрес электронной почты: (Пишем адрес электронной почты) Комментарий: Вы выбрали следующий ID пользователя:

   "Repo Signer <admin@company.net>"

Сменить (N)Имя, (C)Комментарий, (E)адрес или (O)Принять/(Q)Выход?

// Пишем O (Принять)

Для защиты секретного ключа необходима фраза-пароль.

Далее, система предложит нам сгенерировать случайные числа. Для этого нужно следовать инструкции, которая будет написана в нашем терминале (движение мышкой, набор текста и т.д)

В конце, когда сформируется отпечаток ключа GPG, можно увидеть сформированный ID Пример: ID: 261948CA Отпечаток (fingerprint): 966F F72F 03F4 AA67 6CI4 13FA D7CE F279 2619 49CA

Теперь нам необходимо применить наш ID GPG ключа для создания и подписи индексов:

# genbasedir --create --bloat --progress --sign --default-key=261948CA --topdir=/var/www/repo/extra x86_64 extra

ВАЖНО Обратите внимание, что в поле --default-key= Нужно использовать наш ID (в моем случае 261948CA)

Далее, вводим фразу-пароль для доступа к секретному ключу пользователя.

Добавляем свой ключ, использованный для подписанного репозитория: Создаем файл:

# nano /etc/apt/vendors.list.d/own.list

И в этом файле (own.list) прописываем наш fingerprint и имя :

simple-key "own" {
       Fingerprint "966FF72F03F4AA676CI413FAD7CEF279261949CA";
       Name "Ваше настоящее имя <ваша электронная почта>"%;
}

ВАЖНО Не забудьте поставить ; после поля Fingerprint и name.

ВАЖНО2 Отпечаток (Fingerprint) указываем без пробелов.

Импортируем публичный ключ в общую базу alt-gpgkeys:

# gpg --output ~/repo.gpg --export 261948CA
# gpg --no-default-keyring --keyring /usr/lib/alt-gpgkeys/pubring.gpg --import ~/repo.gpg

ВАЖНО3 ВНИМАНИЕ! При обновлении пакета alt-gpgkeys ключ подписи репозитория будет удалён. Необходимо или поставить пакет alt-gpgkeys на Hold (https://www.altlinux.org/Hold) или написать filetrigger по добавлению ключа в эту базу при обновлении пакета.

Устанавливаем утилиту apt-repo:

# apt-get install apt-repo

Добавляем свой репозиторий с ключом для проверки:

# echo "rpm [own] file:/var/extra x86_64 extra" > /etc/apt/sources.list