Работа с RPM-пакетами

Info

GitVerse поддерживает хранение и распространение RPM-пакетов — для систем RHEL, Rocky Linux, AlmaLinux, Fedora, openSUSE и других RPM-дистрибутивов.

Типы структур RPM-репозиториев

В GitVerse поддерживаются два типа структуры RPM-репозиториев:

  • корневой (root): единый репозиторий для всех пакетов пользователя;
  • групповой (grouped): репозитории, разделенные по группам (например, centos/el9).

Предварительные требования

Для успешного подключения репозитория вам потребуются следующие данные и доступы:

  • имя пользователя: логин вашей учетной записи на GitVerse;
  • токен доступа: персональный токен (или пароль).

1. Установка плагинов DNF

Убедитесь, что в системе установлен пакет dnf-plugins-core для управления конфигурацией репозиториев:

dnf install -y dnf-plugins-core

2. Подключение репозитория

Используйте команду config-manager, подставив ваши учетные данные.

Корневой репозиторий

dnf config-manager --add-repo https://<username>:<token>@gitverse.ru/api/packages/{owner}/rpm.repo

Групповой репозиторий (например, centos/el9)

dnf config-manager --add-repo https://<username>:<token>@gitverse.ru/api/packages/{owner}/rpm/centos/el9.repo

Публикация RPM-пакета

Загрузка осуществляется через обычный HTTP PUT:

curl \
  --user <username>:<token> \
  --upload-file ./myapp-1.0.0-1.x86_64.rpm \
  https://gitverse.ru/api/packages/<owner>/rpm/<group>/upload

Требования к загрузке:

  • комбинация имя + версия + архитектура должна быть уникальной; \;
  • если нужно перезалить файл — сначала удалите старый.

Установка RPM пакета

Установить последнюю версию

dnf install {package_name}

Установить конкретную версию

dnf install {package_name}-{package_version}.{architecture}

Важно Если ваши пакеты не подписаны GPG-ключом, dnf заблокирует установку. Используйте флаг --nogpgcheck для обхода проверки:

dnf install myapp --nogpgcheck

Удаление RPM-пакета

curl --user <username>:<token> -X DELETE \
  https://gitverse.ru/api/packages/<owner>/rpm/<group>/package/<name>/<version>/<architecture>

Ошибки RPM (dnf/yum)

ОшибкаВозможная причинаРешение
GPG check FAILEDПакет не подписан GPG-ключом при сборке, а dnf требует подпись.Используйте флаг--nogpgcheckпри установке (временно) или подпишите пакет своим GPG-ключом (постоянно).
Package is intended for a different OSПопытка установить пакет, собранный для RHEL 7 (.el7), на RHEL 9 (.el9).1.Используйте пакет, собранный специально для вашей версии ОС;
2.Используйтеrpm -ivh --ignoreosдля принудительной установки.
Repodata is incorrectКэш метаданныхdnfустарел.Выполните очистку кэша:sudo dnf clean all.