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

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

Оптимизация скриптов автоматизации сборки пакетов в Termux с использованием кэширующего менеджера apt-get

Подробное руководство по ускорению сборки пакетов в Termux: кэширование apt-get, настройка локального репозитория и примеры скриптов автоматизации.

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

Почему кэширование играет ключевую роль

Каждый вызов apt-get install скачивает необходимые .deb‑файлы из удалённых репозиториев. При повторных установках эти файлы загружаются заново, что приводит к:

  • Увеличению трафика и расходу мобильного интернета;
  • Замедлению CI/CD‑конвейеров в Termux;
  • Необходимости повторного скачивания одинаковых пакетов.

Решение – сохранять загруженные пакеты в локальном кэше и переиспользовать их.

Принцип работы кэша apt-get в Termux

По умолчанию apt хранит загруженные архивы в каталоге $PREFIX/var/cache/apt/archives. При удалении пакетов кэш очищается только при выполнении apt-get clean. Для автоматизации сборки достаточно гарантировать, что этот каталог сохраняется между запусками скриптов.

Настройка постоянного кэша

Самый простой способ – переместить кэш в директорию, которую вы явно сохраняете (например, ~/termux-cache) и создать символическую ссылку:

# Создаём отдельную папку для кэша
mkdir -p ~/termux-cache/apt-archives

# Удаляем старый кэш (если существует)
rm -rf $PREFIX/var/cache/apt/archives

# Создаём символическую ссылку
ln -s ~/termux-cache/apt-archives $PREFIX/var/cache/apt/archives

# Проверяем, что ссылка работает
ls -l $PREFIX/var/cache/apt/archives

Теперь любые скачанные пакеты будут сохраняться в ~/termux-cache/apt-archives и будут доступны после перезапуска Termux.

Пример скрипта автоматизации сборки

Ниже представлен минимальный скрипт, который:

  1. Обновляет списки пакетов;
  2. Устанавливает зависимости, используя кэш;
  3. Собирает исходный код проекта;
  4. Очищает временные файлы, но сохраняет кэш.
#!/usr/bin/env bash

set -euo pipefail

# 1. Обновляем индексы пакетов
apt-get update -y

# 2. Устанавливаем необходимые зависимости
# Список можно расширять под ваш проект
DEPS="git make clang python clang-tools-extra"
apt-get install -y $DEPS

# 3. Клонируем репозиторий (пример)
PROJECT_DIR="$HOME/myproject"
if [ ! -d "$PROJECT_DIR" ]; then
  git clone https://github.com/example/myproject.git "$PROJECT_DIR"
fi
cd "$PROJECT_DIR"

# 4. Сборка проекта
make clean && make -j$(nproc)

# 5. Очистка временных файлов, кэш сохраняется
apt-get autoremove -y

echo "Сборка завершена успешно! Кэш находится в ~/termux-cache/apt-archives"

Скрипт можно добавить в ~/.profile или запускать через планировщик cron в Termux (пакет cronie).

Дополнительные трюки для ускорения

  • Предзагрузка кэша. При создании образа (например, через termux-create-package) включайте в него уже скачанные .deb‑файлы.
  • Локальный репозиторий. Можно собрать собственный репозиторий в ~/local-repo и добавить его в /etc/apt/sources.list.d:
    echo "deb [trusted=yes] file://$HOME/local-repo ." > $PREFIX/etc/apt/sources.list.d/local.list
    apt-get update
  • Параллельные загрузки. Установите переменную Acquire::Queue-Mode "access"; в /etc/apt/apt.conf.d/99parallel для ускорения скачивания нескольких пакетов одновременно.

Заключение

Оптимизация скриптов сборки в Termux с помощью кэширования apt-get позволяет существенно сократить время установки зависимостей, экономить мобильный трафик и повышать стабильность автоматических конвейеров. Применяя описанные приёмы – перенос кэша в постоянную директорию, использование локального репозитория и небольшие настройки apt – вы получаете быстрый и предсказуемый процесс сборки.

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

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

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

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

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