Π Π°Π±ΠΎΡ‚Π° с RPM-ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ

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.

Π’Ρ‹ нашли Ρ‡Ρ‚ΠΎ искали?