Π Π°Π±ΠΎΡΠ° Ρ DEB-ΠΏΠ°ΠΊΠ΅ΡΠ°ΠΌΠΈ
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 | ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ |
| ΠΏΠ°ΠΊΠ΅Ρ Π½Π΅ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ | Π²Π΅ΡΡΠΈΡ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»Π°ΡΡ | ΡΠ²Π΅Π»ΠΈΡΡΡΠ΅ Π²Π΅ΡΡΠΈΡ |