Работа с 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-core2. Подключение репозитория
Используйте команду 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. |