Π Π°Π±ΠΎΡΠ° Ρ 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-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. |