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

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

Создание пользовательских пакетов для Termux с использованием CMake и Rust

Termux предоставляет мощную Linux‑подобную среду на Android‑устройствах. Стандартный набор пакетов покрывает большинство задач, однако иногда требуется собрать собственный инструмент, написанный на C/C++ (с использованием CMake) или на Rust. В этой статье мы разберём процесс создания пользовательского пакета, который можно установить через pkg или apt в Termux.

Что понадобится

  • Установленный Termux (последняя версия из Google Play или F-Droid).
  • Базовые инструменты разработки: git, clang, make, cmake.
  • Rust‑toolchain для Android: rustup, цель aarch64-linux-android (или нужная архитектура).
  • Пакет termux-tools (включает termux-create-package).

Установка необходимых зависимостей

pkg update && pkg upgrade -y
pkg install -y git clang make cmake rust wget tar proot
rustup target add aarch64-linux-android

Эти команды подготовят окружение как для C/C++ проектов, так и для Rust.

Сборка проекта на C/C++ с CMake

Рассмотрим пример простого «Hello World», который собирается через CMake.

# Клонируем репозиторий
git clone https://github.com/example/termux-cmake-demo.git
cd termux-cmake-demo

# Создаём директорию сборки и собираем
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$PREFIX
make -j$(nproc)
make install

После установки бинарник появится в $PREFIX/bin, где $PREFIX обычно равен /data/data/com.termux/files/usr.

Сборка проекта на Rust

Создадим простой CLI‑инструмент на Rust.

# Создаём новый проект
cargo new --bin termux-rust-demo
cd termux-rust-demo

# Указываем таргет для Android
rustup target add aarch64-linux-android

# Сборка для целевой архитектуры
cargo build --release --target aarch64-linux-android

# Копируем готовый бинарник в $PREFIX/bin
cp target/aarch64-linux-android/release/termux-rust-demo $PREFIX/bin/
chmod +x $PREFIX/bin/termux-rust-demo

Бинарник готов к использованию, но пока он не упакован в виде пакета .deb.

Создание пакета Debian для Termux

Termux использует собственный набор скриптов (пакет termux-create-package) для генерации .deb. Ниже показан общий шаблон.

# Создаём рабочую директорию
mkdir -p ~/my_pkg/src && cd ~/my_pkg

# Скачиваем исходный код (пример для CMake‑проекта)
git clone https://github.com/example/termux-cmake-demo.git src

# Пишем файл build.sh
cat > build.sh <<'EOF'
#!/usr/bin/env bash
set -e

# Путь к каталогу сборки
BUILD_DIR=$PWD/build
mkdir -p $BUILD_DIR && cd $BUILD_DIR

# CMake конфигурация
cmake $SRC_DIR -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$PREFIX
make -j$(nproc)
make install DESTDIR=$PWD/package
EOF
chmod +x build.sh

# Описание пакета (control)
mkdir -p deb
cat > deb/control <<'EOF'
Package: termux-cmake-demo
Version: 1.0.0
Architecture: aarch64
Maintainer: Your Name 
Description: Демонстрационный пакет, собранный с помощью CMake в Termux.
Depends: libc6, libstdc++6
EOF

# Создаём пакет
termux-create-package

Команда termux-create-package автоматически упакует содержимое package в .deb, который можно установить через dpkg -i или разместить в собственном репозитории.

Пакет для Rust‑проекта

Для Rust процесс аналогичен, только в build.sh вместо CMake вызывается cargo.

cat > build.sh <<'EOF'
#!/usr/bin/env bash
set -e

# Сборка Rust‑бинарника
cargo build --release --target aarch64-linux-android

# Установка в staging‑директорию
mkdir -p package$PREFIX/bin
cp target/aarch64-linux-android/release/termux-rust-demo package$PREFIX/bin/
chmod +x package$PREFIX/bin/termux-rust-demo
EOF
chmod +x build.sh

# Остальная часть (deb/control) остаётся такой же, только меняем Package и Description.
termux-create-package

Полученный .deb можно распространять через собственный репозиторий или разместить в GitHub Releases.

Тестирование и публикация

  • Установите пакет локально: dpkg -i termux-cmake-demo_1.0.0_aarch64.deb.
  • Проверьте работу команды: termux-cmake-demo (должно вывести «Hello, Termux!»).
  • Для публичного репозитория создайте Packages файл и подпишите его с помощью apt-ftparchive и gpg.

Заключение

Создание пользовательских пакетов для Termux с помощью CMake и Rust открывает широкие возможности для разработки нативных Android‑утилит без необходимости писать Java/Kotlin. Вы получили полное представление о подготовке окружения, сборке кода и упаковке в формат .deb, совместимый с менеджером пакетов Termux.

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

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

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

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

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

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