Работа с DEB-пакетами
Info
GitVerse предоставляет собственные APT-совместимые репозитории для распространения DEB-пакетов. Поддерживаются Ubuntu, Debian и другие совместимые дистрибутивы.
Репозитории DEB-пакетов в GitVerse структурированы по Дистрибутиву (distribution) и Компоненту (component).
Один пакет может быть доступен в разных ветках одновременно.
Подключение DEB-репозитория
Для проверки подлинности пакетов обычно используется публичный ключ, предоставленный владельцем репозитория.
Добавьте PGP-ключ репозитория, если он предоставлен владельцем
sudo mkdir -p /etc/apt/keyrings
sudo curl -fsSL https://gitverse.ru/api/packages/<owner>/debian/repository.key \
-o /etc/apt/keyrings/gitverse-<owner>.ascДобавьте источник пакетов
Создайте файл конфигурации /etc/apt/sources.list.d/gitverse-<owner>.list с указанием нужного дистрибутива и компонента.
Добавьте репозиторий в список источников пакетов
echo "deb [signed-by=/etc/apt/keyrings/gitverse-<owner>.asc] \
https://gitverse.ru/api/packages/<owner>/debian <distribution> <component>" \
| sudo tee /etc/apt/sources.list.d/gitverse-<owner>.listПараметры:
<distribution> — например: focal, jammy, bookworm;
<component> — обычно: main.
Обновите индексы APT
sudo apt updateПубликация DEB-пакета
Загрузка .deb файла выполняется через HTTP PUT:
curl \
--user <username>:<token> \
--upload-file ./myapp_1.0.0_amd64.deb \
https://gitverse.ru/api/packages/<owner>/debian/pool/<distribution>/<component>/uploadТребования:
- уникальная комбинация имя + версия + архитектура +
distribution+component;\; - повторная загрузка невозможна без удаления предыдущей версии.
Установка DEB-пакетов
Установить последнюю версию
sudo apt install {package_name}Установить конкретную версию
sudo apt install {package_name}={package_version}Удаление DEB-пакета
curl --user <username>:<token> -X DELETE \
https://gitverse.ru/api/packages/<owner>/debian/pool/<distribution>/<component>/<package>/<version>/<architecture>Использование DEB-репозитория в CI/CD
steps:
- name: Install repo key
run: |
sudo curl -fsSL https://gitverse.ru/api/packages/myorg/debian/repository.key \
-o /etc/apt/keyrings/myorg.asc
- name: Add repo
run: |
echo "deb [signed-by=/etc/apt/keyrings/myorg.asc] \
https://gitverse.ru/api/packages/myorg/debian stable main" \
| sudo tee /etc/apt/sources.list.d/myorg.list
- run: sudo apt update
- run: sudo apt install -y myapp| Ошибка | Причина | Решение |
|---|---|---|
| APT «ругается» на подпись | ключ не добавлен | добавить keyring |
| 404/Not Found | неверный путь distribution/component | проверить значения |
| пакет не обновляется | версия не изменилась | увеличьте версию |