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

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

Как создать собственный пакет deb для приложений Termux

Termux предоставляет полноценную Linux‑среду на Android‑устройствах, позволяя устанавливать пакеты через менеджер pkg. Иногда требуется распространять собственные утилиты или скрипты в виде .deb‑пакетов, чтобы пользоваться всеми преимуществами зависимости, обновлений и простого управления. В этой статье мы пошагово разберём процесс создания собственного deb‑пакета, совместимого с Termux.

Подготовка окружения

Для сборки пакетов в Termux необходимы несколько базовых утилит. Установите их одной командой:

pkg update && pkg install dpkg-dev build-essential nano

Пакет dpkg-dev содержит инструменты dpkg-deb, dpkg-source и др., а build-essential обеспечивает компиляторы и make‑утилиты, если ваш проект требует сборки из исходников.

Структура каталога пакета

Стандартная структура deb‑пакета выглядит так:

myapp_
├── DEBIAN
│   └── control
└── data
    ├── usr
    │   └── bin
    │       └── myapp
    └── etc
        └── myapp.conf

Каталог DEBIAN содержит метаданные пакета, а каталог data (можно назвать произвольно, например usr) – файлы, которые будут установлены в системе.

Создание control‑файла

Файл DEBIAN/control описывает пакет: имя, версию, зависимости и описание. Пример минимального control‑файла:

Package: myapp
Version: 1.0.0
Architecture: all
Maintainer: Your Name 
Installed-Size: 1024
Depends: python, termux-api
Section: utils
Priority: optional
Description: Пример собственного приложения для Termux.
 Это простое приложение демонстрирует, как упаковать скрипт Python
 и обеспечить его работу в Termux.

Обратите внимание, что поле Architecture обычно задаётся как all для скриптов, не требующих компиляции под конкретную архитектуру.

Размещение исполняемых файлов

Поместите ваш скрипт или бинарный файл в соответствующий каталог, например usr/bin. Убедитесь, что файл имеет права исполнения:

mkdir -p myapp_/usr/bin
cp myapp.py myapp_/usr/bin/myapp
chmod 755 myapp_/usr/bin/myapp

Если ваш проект использует конфигурационные файлы, разместите их в etc или другом подходящем месте.

Сборка .deb пакета

После подготовки структуры выполните команду сборки:

dpkg-deb --build myapp_ myapp_1.0.0_all.deb

Файл myapp_1.0.0_all.deb готов к распространению. Вы можете проверить его содержимое:

dpkg-deb -c myapp_1.0.0_all.deb

Тестирование пакета в Termux

Установите пакет локально и убедитесь, что всё работает корректно:

pkg install ./myapp_1.0.0_all.deb
myapp --help

Если появляются ошибки, проверьте:

  • Корректность путей в control (например, отсутствие лишних слешей).
  • Наличие всех зависимостей, указанных в поле Depends.
  • Права доступа к файлам.

Подписание и размещение в репозитории

Для публичных репозиториев рекомендуется подписать пакет GPG‑ключом. В Termux можно использовать debsig-verify и debsig-create (часть пакета debsig). Пример создания подписи:

apt install debsig
# Генерация ключа (если ещё нет)
gpg --full-generate-key
# Подпись пакета
debsig-create -k YOUR_KEY_ID myapp_1.0.0_all.deb

После подписи разместите пакет в публичном репозитории (например, на GitHub Releases) и добавьте его в список источников Termux:

echo "deb https://your.repo.url ./" > $PREFIX/etc/apt/sources.list.d/yourrepo.list
apt update && apt install myapp

Заключение

Создание собственного .deb‑пакета для Termux – это простой и мощный способ распространять собственные инструменты, соблюдая стандарты пакетного менеджера. Вы освоили подготовку окружения, построение структуры пакета, написание control‑файла, сборку, тестирование и публикацию.

Если вам требуется автоматизация сборки, настройка CI/CD, создание кастомных репозиториев или консультации по оптимизации пакетов под Android‑устройства, команда RybinskLab готова помочь. Мы предоставляем услуги по разработке, упаковке и поддержке приложений в Termux, а также по интеграции ваших решений в корпоративные инфраструктуры.

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

Поделиться знанием:

Нужна профессиональная помощь?

Меня зовут Усачёв Денис Евгеньевич. Я оказываю IT-услуги в Рыбинске и Ярославской области: настройка серверов, безопасность, автоматизация бизнеса.

Связаться со мной