Ошибка «unable to locate package» в Termux: причины и пошаговое решение

Команда pkg install python в Termux завершается строкой «E: Unable to locate package» — это значит, что менеджер пакетов apt не нашёл указанное имя ни в одном из подключённых репозиториев. Чаще всего виновата не опечатка, а устаревший локальный индекс пакетов, недоступное зеркало репозитория или устаревшая версия самого Termux, установленная из Google Play.

Ошибка относится к разряду легко устранимых, но важно действовать в правильном порядке: сначала обновить списки пакетов, затем проверить источники и только потом искать альтернативы. Ниже разберём все типовые причины и рабочие способы исправления.

Почему Termux не находит пакет: основные причины

Сообщение unable to locate package — стандартный ответ apt, когда имя пакета отсутствует в загруженных индексах репозиториев. В контексте Termux для этого есть несколько характерных причин.

  • 🔍 Опечатка в имени пакета — регистр и точное написание имеют значение, имена пишутся в нижнем регистре.
  • 📦 Устаревший локальный индекс — списки пакетов не обновлялись, и apt работает со старыми или пустыми данными.
  • 🌐 Недоступное или «мёртвое» зеркало — выбранный сервер репозитория не отвечает или отдаёт устаревшие данные.
  • 📱 Устаревшая версия Termux — сборка из Google Play давно не поддерживается, её репозитории заморожены и не содержат актуальных пакетов.
  • 🧩 Пакет находится в дополнительном репозитории — часть программ вынесена в отдельные источники, которые нужно подключить отдельно.
⚠️ Внимание: версия Termux из Google Play официально заброшена разработчиками. Если приложение установлено оттуда, ошибки при установке пакетов почти гарантированы — рекомендуемый источник установки сейчас F-Droid или релизы на GitHub проекта.

Шаг 1. Обновление списков пакетов

Первое и самое частое решение — обновить локальные индексы. Без свежего индекса apt просто не знает о существовании пакетов, даже если они есть на сервере. Выполните в терминале:

pkg update && pkg upgrade

Команда pkg update скачивает актуальные списки пакетов со всех подключённых репозиториев, а pkg upgrade обновляет уже установленное ПО. Во время обновления могут появляться вопросы о замене конфигурационных файлов — если не уверены, оставляйте версию по умолчанию (ответ N).

После завершения повторите установку нужного пакета. Если ошибка сохраняется — переходите к проверке зеркал и источников.

☑️ Базовая диагностика ошибки

Выполнено: 0 / 5

Шаг 2. Проверка имени пакета и его поиск

Прежде чем менять настройки, убедитесь, что пакет с таким именем вообще существует. Для этого в Termux есть встроенный поиск:

pkg search часть_имени

Команда выведет все пакеты, в названии или описании которых встречается указанный фрагмент. Например, вместо угадывания можно выполнить pkg search editor и посмотреть точные имена доступных редакторов. Учтите, что имена пакетов в Termux не всегда совпадают с привычными по десктопным дистрибутивам Linux.

Если поиск ничего не нашёл, возможны два варианта: пакет лежит в дополнительном репозитории (об этом ниже) либо его действительно нет в репозиториях Termux, и придётся искать альтернативу или собирать программу из исходников.

Шаг 3. Смена зеркала репозитория

Возможная причина ошибки — недоступное зеркало: сервер не отвечает, блокируется провайдером или отдаёт устаревший снимок репозитория. Termux имеет встроенную утилиту для смены источника:

termux-change-repo

Утилита открывает интерактивное меню: пробелом отмечаются репозитории, затем выбирается зеркало из списка. Разумно выбрать географически близкий сервер или основной репозиторий проекта. После смены зеркала обязательно повторите pkg update, иначе индексы останутся старыми.

📊 Что помогло вам устранить ошибку unable to locate package?
Обновление через pkg update
Смена зеркала через termux-change-repo
Переустановка Termux из F-Droid
Подключение дополнительного репозитория

Шаг 4. Подключение дополнительных репозиториев

Часть программ в Termux вынесена из основного репозитория в отдельные. Если пакет не находится даже после обновления индексов, проверьте, не относится ли он к одному из дополнительных источников.

РепозиторийКоманда подключенияЧто содержит
x11-repopkg install x11-repoГрафические приложения и окружения рабочего стола
root-repopkg install root-repoУтилиты, требующие root-доступ
tur-repopkg install tur-repoСторонние пакеты сообщества (поддерживается энтузиастами)

После подключения любого репозитория снова выполните pkg update и повторите установку. Имейте в виду: перечень дополнительных репозиториев может меняться, актуальный список стоит сверять с официальной вики проекта Termux.

⚠️ Внимание: сторонние репозитории вроде tur-repo поддерживаются сообществом, а не основной командой Termux. Устанавливайте из них только те пакеты, в происхождении которых уверены.

Шаг 5. Переустановка Termux из актуального источника

Если ни обновление, ни смена зеркала не помогли, а pkg update выдаёт ошибки доступа к репозиториям, с высокой вероятностью у вас устаревшая сборка Termux. Версия из Google Play использует замороженные репозитории, которые больше не пополняются, поэтому многие пакеты там попросту отсутствуют.

Порядок действий такой: удалите текущую версию, установите Termux из F-Droid или скачайте APK со страницы релизов проекта на GitHub, затем сразу выполните pkg update && pkg upgrade. Важно: сборки из Google Play и F-Droid подписаны разными ключами, поэтому обновить одну до другой без удаления нельзя — Android откажется устанавливать пакет поверх.

Перед удалением сохраните нужные данные из домашнего каталога Termux: скрипты, файлы конфигурации и результаты работы. После переустановки их можно вернуть на место.

Как сохранить данные перед переустановкой

Скопируйте нужные файлы из домашнего каталога Termux в общее хранилище командой cp -r ~/папка /sdcard/ (предварительно выдайте доступ к хранилищу командой termux-setup-storage). После установки новой версии верните файлы обратно той же командой в обратном направлении.

Типичные ошибки, которые мешают решить проблему

Некоторые действия выглядят логично, но только тратят время или усугубляют ситуацию:

  • 🚫 Повторный ввод pkg install без предварительного pkg update — индекс сам себя не обновит.
  • 🚫 Копирование команд из старых руководств с устаревшими именами пакетов — сначала проверьте имя через pkg search.
  • 🚫 Установка Termux из сторонних каталогов приложений — там могут лежать модифицированные или устаревшие сборки.
  • 🚫 Игнорирование ошибок при pkg update — если списки не загрузились, дальнейшая установка бессмысленна.

Частые вопросы

Почему pkg update тоже завершается с ошибкой?

Обычно это указывает на недоступное зеркало или заблокированный репозиторий устаревшей версии Termux. Попробуйте сменить зеркало через termux-change-repo, проверьте интернет-соединение и отключите VPN. Если ничего не помогает — вероятно, установлена устаревшая сборка из Google Play.

Пакет есть в Ubuntu, но Termux его не находит. Почему?

Репозитории Termux формируются отдельно и не повторяют состав Ubuntu или Debian. Часть программ не портирована под Android, а некоторые имеют другие имена. Проверьте наличие через pkg search и дополнительные репозитории.

Можно ли установить deb-пакет вручную, если его нет в репозитории?

Технически dpkg в Termux доступен, но пакеты, собранные для обычных дистрибутивов Linux, чаще всего несовместимы с окружением Android и его путями. Надёжнее найти аналог в репозиториях Termux или собрать программу из исходного кода.

Нужен ли root для исправления этой ошибки?

Нет. Ошибка unable to locate package связана с репозиториями и индексами пакетов, а не с правами доступа. Все описанные решения выполняются без root.

Ошибка появляется только с одним конкретным пакетом. Что делать?

Уточните точное имя через pkg search, проверьте, не входит ли пакет в x11-repo, root-repo или tur-repo. Если пакета нет нигде — вероятно, он не портирован в Termux, и нужно искать альтернативу.