We detected you are likely not from a Russian-speaking region. Would you like to switch to the international version of the site?

  Назад к списку статей

Создание собственного репозитория пакетов в Termux: подпись, CI/CD и интеграция с GitHub Packages

В мире Termux, как и в других средах разработки, часто возникает необходимость в создании и распространении собственных пакетов. Это может быть полезно для внутреннего использования, для создания специализированных инструментов или для обмена с сообществом. В этой статье мы рассмотрим процесс создания собственного репозитория пакетов в Termux, включая подпись пакетов для обеспечения безопасности, настройку непрерывной интеграции и непрерывной доставки (CI/CD) и интеграцию с GitHub Packages для упрощения управления версиями.

Необходимые инструменты

Для выполнения задачи потребуются следующие инструменты:

  • Termux: Установите Termux на ваше устройство Android.
  • pkg: Установленный менеджер пакетов Termux.
  • git: Для управления версиями и работы с репозиторием.
  • GPG: Для создания и подписи цифровых подписей.
  • GitHub: Аккаунт на GitHub.

Создание структуры репозитория

Первым шагом является создание структуры вашего репозитория. Рекомендуется использовать стандартную структуру для пакетов Termux, которая включает в себя:

mkdir my-repo
cd my-repo
mkdir packages
mkdir scripts
mkdir hooks
touch Dockerfile
touch README.md

Здесь:

  • packages/: Содержит файлы пакетов (.pkg).
  • scripts/: Содержит скрипты для установки и обслуживания пакетов.
  • hooks/: Содержит хуки, выполняемые при установке и удалении пакетов.
  • Dockerfile: Описывает, как собрать пакет.
  • README.md: Содержит описание проекта.

Создание пакета

Создание пакета Termux включает в себя создание файла с расширением .pkg. Этот файл содержит информацию о пакете, такую как имя, версия, зависимости и описание. Пример файла my-package.pkg:

Name=my-package
Version=1.0
Description=A simple package example
Architecture=all
Maintainer=Your Name 
Dependencies=bash

Для создания пакета из скрипта, необходимо создать файл setup.sh в директории packages/:

#!/bin/bash
echo "Hello from my package!"

Затем создайте файл my-package.pkg.tar.gz с помощью команды:

pkg build my-package.pkg.tar.gz packages/my-package.pkg

Подпись пакетов

Подпись пакетов обеспечивает их целостность и позволяет убедиться, что они не были изменены. Для этого необходимо создать пару ключей GPG. Вы можете сделать это с помощью команды:

gpg --gen-key

Затем подпишите пакет с помощью созданного ключа:

gpg --detach-sign my-package.pkg.tar.gz

После подписи необходимо добавить ключ в список доверенных ключей Termux. Это можно сделать, используя команду:

pkg add --trusted-keys /path/to/your/public.key

CI/CD с помощью GitHub Actions

Для автоматизации процесса сборки и тестирования пакетов можно использовать GitHub Actions. Создайте файл .github/workflows/build.yml в репозитории:

name: Build and Test Termux Package
on:
  push:
    branches:
      - main
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Set up Python
        uses: actions/setup-python@v3
        with:
          python-version: '3.x'
      - name: Build the package
        run: pkg build my-package.pkg.tar.gz packages/my-package.pkg

Этот workflow автоматически собирает пакет при каждом push в ветку main.

Интеграция с GitHub Packages

Для публикации пакетов в GitHub Packages необходимо создать репозиторий пакетов (Package Registry) в вашем аккаунте GitHub. Затем необходимо настроить переменные окружения для доступа к репозиторию:

git config --global user.email "your.email@example.com"
git config --global user.name "Your Name"
git remote add origin https://github.com/your-username/your-package-registry.git
git push --tags

Теперь вы можете опубликовать пакет в GitHub Packages с помощью команды:

git push --tags

После публикации пакета вы можете установить его в Termux с помощью команды:

pkg install my-package

Заключение

Создание собственного репозитория пакетов в Termux – это мощный инструмент, который позволяет создавать и распространять собственные инструменты и библиотеки. Подпись пакетов обеспечивает их безопасность, а CI/CD автоматизирует процесс сборки и тестирования. Интеграция с GitHub Packages упрощает управление версиями. Надеемся, эта статья была вам полезна!

Вам нужна помощь в создании и управлении репозиторием пакетов в Termux? Обратитесь в РыбинскЛАБ! Мы предоставляем широкий спектр услуг в области разработки мобильных приложений и систем, включая создание и поддержку репозиториев пакетов. Свяжитесь с нами для получения консультации!

* Текст статьи подготовлен и структурирован с использованием технологий искусственного интеллекта. Проверен и доработан перед публикацией.

Нужна помощь с настройкой Termux, Linux и серверов?

Я оказываю ИТ-услуги: настройка серверов, автоматизация, безопасность, помощь с Linux и инфраструктурой. Материалы сайта — только в ознакомительных и образовательных целях.

Связаться со мной
Поддержать проект