Π Π°Π±ΠΎΡ‚Π° с 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ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ значСния
ΠΏΠ°ΠΊΠ΅Ρ‚ Π½Π΅ обновляСтсявСрсия Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»Π°ΡΡŒΡƒΠ²Π΅Π»ΠΈΡ‡ΡŒΡ‚Π΅ Π²Π΅Ρ€ΡΠΈΡŽ

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