Реестр пакетов Debian
Для работы с реестром пакетов Debian, необходимо получить транспортный токен Gitflic. С инструкцией по получению токена можно ознакомиться на странице.
В документации ниже встречается атрибут {домен_gitflic}
На его место необходимо указать домен, в зависимости от версии:
-
для SaaS версии
registry.gitflic.ru
-
для self-hosted
localhost:8080
Домен и порт для self-hosted версии может отличаться.
Создание ключей
Перед тем как загружать deb пакеты в реестр, необходимо сгенерировать пару ключей: публичный и приватный. Эти ключи будут использоваться для подписи пакетов и их проверки. Для создания ключей можно воспользоваться утилитой gpg
.
1. Установка утилиты gpg
Если GPG не установлен на вашей системе, установите его:
- Для Ubuntu/Debian:
sudo apt-get update
sudo apt-get install gnupg
- Для macOS:
brew install gnupg
2. Создание пары ключей
Выполните следующую команду для создания новой пары ключей:
gpg --full-generate-key
Вам будет предложено выбрать тип ключа, длину ключа, срок действия и ввести личные данные (имя, email и комментарий). Рекомендуется использовать следующие параметры:
- Тип ключа: ECC (sign and encrypt) (по умолчанию)
- Выберите эллиптическую кривую: Curve 25519 (по умолчанию)
- Срок действия: без срока действия (оставьте пустым)
- Личные данные: укажите свои актуальные данные, которые будут использованы для подписи.
После ввода данных система запросит пароль для защиты ключа. Введите надежный пароль и запомните его.
3. Экспорт ключей
После завершения создания ключей, экспортируйте их:
gpg --armor --export {your-key-id} > public-key.asc
gpg --armor --export-secret-keys {your-key-id} > private-key.asc
Замените {your-key-id}
на идентификатор вашего ключа, который можно найти с помощью команды:
gpg --list-keys
4. Импорт ключей
Добавьте публичный и приватный ключ в настройках профиля GitFlic, в разделе “Ключи” -> “Ключевые пары GPG”.
5. Настройка реестра
Выберите вашу пару ключей в настройках реестра. Для этого перейдите в настройки проекта/компании -> “Настройки реестра” -> “Debian” -> в соответствующем поле выберите вашу пару ключей и нажмите “Сохранить изменения”.
Публикация пакета
Загрузить пакет в реестр можно через веб-интерфейс или через CLI.
Атрибут | Описание |
---|---|
домен_gitflic | registry.gitflic.ru , либо ваш для self-hosted |
userAlias | Имя пользователя в GitFlic (логин) |
ownerAlias | Имя владельца проекта в GitFlic, то же что в URL (пользователь/команда/компания) |
projectAlias | Имя проекта в GitFlic, то же что в URL |
companyAlias | Имя компании в GitFlic, то же что в URL |
transportToken | Транспортный токен |
pathToFile | Путь к файлу |
Distribution | Дистрибутив или версия операционной системы, к которой относится загружаемый пакет |
Component | Категория или раздел в конкретном дистрибутиве |
Публикация пакета в реестр проекта:
Для публикации пакета в реестр на уровне проекта воспользуйтесь данным шаблоном:
curl --user {userAlias}:{transportToken} \
--upload-file {pathToFile}\
{домен_gitflic}/project/{ownerAlias}/{projectAlias}/package/-/deb/pool/{Distribution}/{Component}/upload
Пример команды для выполнения:
curl --user user:aaaaaaaa-bbbb-bbbb-bbbb-cccccccccccc \
--upload-file test.deb\
http://localhost:8080/project/user/testproject/package/-/deb/pool/buster/main/upload
Публикация пакета в реестр компании:
Для публикации пакета в реестр на уровне компании воспользуйтесь данным шаблоном:
curl --user {userAlias}:{transportToken} \
--upload-file {pathToFile}\
{домен_gitflic}/company/{companyAlias}/package/-/deb/pool/{Distribution}/{Component}/upload
Пример команды для выполнения:
curl --user user:aaaaaaaa-bbbb-bbbb-bbbb-cccccccccccc \
--upload-file test.deb\
http://localhost:8080/company/testcompany/package/-/deb/pool/buster/main/upload
Установка пакета
Для установки пакета необходимо добавить реестр в файл со списком ваших репозиториев и получить для него публичный ключ.
1. Добавление репозитория
Перейдите в реестр пакетов и откройте необходимый deb пакет. Далее, скопируйте строку из первого шага настройки и добавьте её в ваш файл со списком репозиториев.
Пример команды для добавления репозитория из реестра проекта:
echo "deb [signed-by=/etc/apt/keyrings/test.asc] http://localhost:8080/project/user/test/package/-/deb buster main" | sudo tee -a /etc/apt/sources.list
Пример команды для добавления репозитория из реестра компании:
echo "deb [signed-by=/etc/apt/keyrings/test.asc] http://localhost:8080/company/testcompany/package/-/deb buster main" | sudo tee -a /etc/apt/sources.list
2. Получение публичного ключа
Для получения публичного ключа, скопируйте и выполните команду из второго шага настройки, указав свой логин и транспортный токен. По умолчанию ключ сохраняется по пути /etc/apt/keyrings/
.
Пример команды для получения публичного ключа из реестра проекта:
curl --user user:aaaaaaaa-bbbb-bbbb-bbbb-cccccccccccc http://localhost:8080/project/user/test/package/-/deb/dists/buster/public-key.asc -o /etc/apt/keyrings/test.asc
Пример команды для получения публичного ключа из реестра компании:
curl --user user:aaaaaaaa-bbbb-bbbb-bbbb-cccccccccccc http://localhost:8080/company/testcompany/package/-/deb/dists/buster/public-key.asc -o /etc/apt/keyrings/test.asc
3. Добавьте данные для аутентификации в реестре (опционально)
Если в настройках реестра запрещен анонимный доступ, то необходимо создать файл для аутентификации в реестре в каталоге /etc/apt/auth.conf.d/
Шаблон команды для создания файла аутентификации:
echo "machine {домен_gitflic} login {userAlias} password {transportToken}" | sudo tee -a /etc/apt/auth.conf.d/gitflic.conf
Пример команды для создания файла аутентификации:
echo "machine http://localhost:8080 login user password aaaaaaaa-bbbb-bbbb-bbbb-cccccccccccc" | sudo tee -a /etc/apt/auth.conf.d/gitflic.conf
4. Обновите список пакетов
Обновите список пакетов, выполнив команду:
sudo apt update
5. Установите пакет
Выполните команду для установки пакета, указав его название:
sudo apt install test/buster