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, а также по интеграции ваших решений в корпоративные инфраструктуры.