Termux – это полноценное Linux‑окружение для Android, которое позволяет использовать привычные инструменты управления пакетами apt и dpkg. В обычных условиях все операции выполняются онлайн, однако в полевых условиях, на устройствах без постоянного доступа к Интернету, часто требуется работать в офлайн‑режиме. В этой статье мы рассмотрим, как подготовить и использовать офлайн‑репозиторий, а также как обновлять и управлять пакетами без подключения к сети.
Подготовка среды
- Установите Termux из официального репозитория или F-Droid.
- Обновите базу пакетов и установите необходимые утилиты:
apt update && apt upgrade -y
apt install -y wget curl gnupg
Эти инструменты понадобятся для скачивания пакетов и работы с их подписью.
Скачивание пакетов для офлайн‑установки
Для создания собственного репозитория необходимо собрать все .deb‑файлы, которые вы планируете установить. Самый простой способ – воспользоваться опцией apt download:
mkdir -p ~/offline-repo && cd ~/offline-repo
apt download bash coreutils vim
# Добавьте любые дополнительные пакеты, включая их зависимости
apt-rdepends -p bash coreutils vim | grep -v "^\s$" | sort -u | while read pkg; do apt download $pkg; done
Команда apt-rdepends (пакет apt-rdepends) выводит дерево зависимостей, позволяя собрать всё необходимое.
Создание собственного офлайн‑репозитория
После того как все .deb‑файлы находятся в каталоге ~/offline-repo, необходимо сгенерировать файл индекса Packages.gz, который понимает apt:
cd ~/offline-repo
apt-ftparchive packages . > Packages
gzip -c Packages > Packages.gz
Создайте файл Release, указывая базовую информацию о репозитории:
cat < Release
Archive: offline
Component: main
Origin: RybinskLab
Label: OfflineRepo
Architecture: all
EOF
Если требуется подписать репозиторий, используйте gpg, но для большинства офлайн‑сценариев это необязательно.
Подключение локального репозитория к apt
Добавьте путь к репозиторию в файл /data/data/com.termux/files/usr/etc/apt/sources.list (или создайте отдельный файл в /data/data/com.termux/files/usr/etc/apt/sources.list.d/):
echo "deb [trusted=yes] file:/data/data/com.termux/files/home/offline-repo ." > $PREFIX/etc/apt/sources.list.d/offline.list
Параметр trusted=yes отключает проверку подписи, что упрощает работу в изолированных средах.
Установка и обновление пакетов в офлайн‑режиме
После добавления репозитория обновите кэш:
apt update
Установите необходимые пакеты:
apt install -y bash coreutils vim
Если требуется обновить уже установленный пакет, просто выполните команду apt install --reinstall <package> – apt возьмёт свежую версию из локального репозитория.
Работа с отдельными .deb‑файлами через dpkg
В некоторых случаях удобнее установить пакет напрямую:
dpkg -i ~/offline-repo/vim_.deb
Если после установки возникли проблемы с зависимостями, выполните:
apt -f install
Эта команда попытается исправить недостающие зависимости, используя ваш офлайн‑репозиторий.
Обновление репозитория
Для поддержания актуальности репозитория периодически скачивайте новые версии пакетов и пересоздавайте индексы:
# Скачивание новых версий
apt download --reinstall bash coreutils vim
# Пересоздание индексов
apt-ftparchive packages . > Packages && gzip -c Packages > Packages.gz
Если у вас ограниченный доступ к сети, можно подготовить репозиторий на ПК, а затем перенести его в Termux через USB, SD‑карту или облачное хранилище.
Отладка и решение типичных проблем
- Ошибка «Unable to locate package» – убедитесь, что путь к репозиторию указан правильно и файл
Packages.gzприсутствует. - Неправильные зависимости – используйте
apt-rdependsпри подготовке репозитория, чтобы собрать все необходимые пакеты. - Повреждённый .deb‑файл – проверьте контрольные суммы (md5/sha256) перед копированием.
Безопасность офлайн‑репозитория
Хотя в изолированных сетях риск атак снижен, рекомендуется:
- Подписывать репозиторий GPG‑ключом и хранить публичный ключ в
/etc/apt/trusted.gpg.d/. - Регулярно проверять контрольные суммы скачанных пакетов.
- Ограничивать доступ к каталогу репозитория правами файловой системы (chmod 700).
Заключение
Офлайн‑управление пакетами в Termux – мощный инструмент для разработки и администрирования в условиях ограниченного доступа к Интернету. С помощью простых команд можно собрать собственный репозиторий, обеспечить быстрый доступ к необходимым пакетам и поддерживать их актуальность без постоянных загрузок.
Если вам нужен более глубокий аудит, настройка кастомных репозиториев или консультация по автоматизации процесса обновления, команда RybinskLab готова помочь. Мы предоставляем услуги по разработке и поддержке Linux‑окружений на Android, а также подготовке обучающих материалов и скриптов для корпоративных клиентов.