Termux — это терминальное приложение для Android и среда Linux.
Обратите внимание, что этот репозиторий предназначен для самого приложения (пользовательский интерфейс и эмуляция терминала). Информацию о пакетах, устанавливаемых внутри приложения, см. в termux/termux-packages.
Краткое руководство по управлению пакетами Termux доступно в разделе «Управление пакетами». Он также содержит информацию о том, как исправить ошибки repository is under maintenance or down
при запуске команд apt
или pkg
.
Мы ищем сопровождающих приложений Termux для Android.
ВНИМАНИЕ. Termux может работать нестабильно на Android 12+. ОС Android уничтожит любые (фантомные) процессы, число которых превышает 32 (ограничение распространяется на все приложения вместе взятые), а также уничтожит все процессы, использующие чрезмерную нагрузку на процессор. Вы можете получить сообщение [Process completed (signal 9) - press Enter]
в терминале, фактически не выходя из процесса оболочки. Ознакомьтесь с соответствующей проблемой № 2366, документацией по отслеживанию проблем, фантомным кэшированным и пустым процессам, а также этим комментарием TLDR о том, как отключить обрезку фантомных процессов и процессов чрезмерного использования процессора. Соответствующая страница документации будет добавлена позже. Возможность отключить убийство должна быть доступна в Android 12L или 13, поэтому обновляйтесь на свой страх и риск, если вы используете Android 11, особенно если у вас нет root-доступа.
Основное приложение Termux поставляется со следующими дополнительными плагинами.
Последняя версия — v0.118.1
.
ВНИМАНИЕ. Настоятельно рекомендуется как можно скорее обновиться до v0.118.0
или выше, чтобы устранить различные ошибки, включая критическую уязвимость, доступную для всех, о которой сообщается здесь. Информацию о Termux в Google Play см. ниже.
Termux можно получить из различных источников, перечисленных ниже, только для Android >= 7
с полной поддержкой приложений и пакетов.
Поддержка как приложения, так и пакетов была прекращена для Android 5
и 6
01 января 2020 г. в v0.83
, однако она была повторно добавлена только для приложения без какой-либо поддержки обновлений пакетов 24 мая 2022 г. через источники GitHub. . Подробности можно узнать здесь.
APK-файлы разных источников подписываются разными ключами подписи. Приложение Termux
и все его плагины используют один и тот же sharedUserId
com.termux
, поэтому все их APK-файлы, установленные на устройстве, должны быть подписаны одним и тем же ключом подписи для совместной работы, и поэтому все они должны быть установлены из одного и того же источника. Не пытайтесь смешивать их вместе, то есть не пытайтесь установить приложение или плагин из F-Droid
и другое из другого источника, например GitHub
. Менеджер пакетов Android также обычно не разрешает установку APK с разными подписями, и вы получаете такие ошибки при установке, как App not installed
, Failed to install due to an unknown error
, INSTALL_FAILED_UPDATE_INCOMPATIBLE
, INSTALL_FAILED_SHARED_USER_INCOMPATIBLE
, signatures do not match previously installed version
и т. д. Это Ограничение можно обойти с помощью root или с помощью кастомных прошивок.
Если вы хотите установить из другого источника, вам необходимо сначала удалить все существующие APK-файлы Termux или его плагинов со своего устройства, а затем установить все новые APK-файлы из того же нового источника. Подробности смотрите в разделе «Удаление». Вы также можете рассмотреть возможность резервного копирования Termux перед удалением, чтобы вы могли восстановить его после переустановки Termux из другого источника.
В следующих параграфах «начальная загрузка» относится к минимальным пакетам, которые поставляются вместе с самим termux-app
для запуска рабочей среды оболочки. Его молнии изготавливаются и выпускаются здесь.
Приложение Termux можно скачать на F-Droid
отсюда.
Вам не нужно загружать приложение F-Droid
(по ссылке « Download F-Droid
) для установки Termux. Вы можете скачать APK-файл Termux прямо с сайта, щелкнув ссылку Download APK
внизу каждого раздела версии.
Обычно требуется несколько дней (или даже неделя или больше), чтобы обновления стали доступны на F-Droid
после того, как обновление было выпущено на GitHub
. Релизы F-Droid
создаются и публикуются F-Droid
после обнаружения нового выпуска GitHub
. Сопровождающие Termux не имеют никакого контроля над созданием и публикацией приложений Termux на F-Droid
. Более того, у сопровождающих Termux также нет доступа к ключам подписи APK выпусков F-Droid
, поэтому мы не можем сами выпустить APK на GitHub
, который был бы совместим с выпусками F-Droid
.
Приложение F-Droid
часто может не уведомлять вас об обновлениях, и вам придется вручную выполнить смахивание вниз на вкладке Updates
приложения, чтобы оно могло проверить обновления. Убедитесь, что оптимизация батареи отключена для приложения. Подробную информацию о том, как это сделать, можно найти на https://dontkillmyapp.com/.
Выпущен только универсальный APK, который будет работать на всех поддерживаемых архитектурах. Размер APK и начальной загрузки составит ~180MB
. F-Droid
не поддерживает APK-файлы для конкретной архитектуры.
Приложение Termux можно получить на GitHub
либо из GitHub Releases
для версии >= 0.118.0
, либо из рабочих процессов GitHub Build Action
. Для android >= 7
устанавливайте только варианты apt-android-7
. Для Android 5
и 6
устанавливайте только варианты apt-android-5
.
APK-файлы для GitHub Releases
будут перечислены в раскрывающемся списке Assets
выпуска. Они автоматически прикрепляются при выпуске новой версии.
APK-файлы для рабочих процессов действий GitHub Build
будут перечислены в разделе Artifacts
рабочего процесса. Они создаются для каждого коммита или отправки в репозиторий и могут использоваться пользователями, которые не хотят ждать выпусков и хотят немедленно опробовать новейшие функции или хотят протестировать свои запросы на включение. Обратите внимание, что для рабочих процессов действий вам необходимо войти в учетную запись GitHub
, чтобы ссылки Artifacts
были включены или доступны для кликов. Если вы используете приложение GitHub
, обязательно откройте ссылку рабочего процесса в браузере, например Chrome или Firefox, в котором выполнена вход в вашу учетную запись GitHub, поскольку вход в браузер в приложении может быть невозможен.
APK-файлы для обоих из них допускают debuggable
и совместимы друг с другом, но несовместимы с другими источниками.
Выпускаются как универсальные, так и специфичные для конкретной архитектуры APK. Размер APK и начальной загрузки составит ~180MB
при использовании универсального и ~120MB
при использовании конкретной архитектуры. Подробности здесь.
Предупреждение системы безопасности : APK-файлы на GitHub подписываются тестовым ключом, который доступен сообществу. Это НЕ официальный ключ разработчика, и каждый может использовать его для создания выпусков для собственного тестирования. Будьте очень осторожны при использовании сборок Termux GitHub, полученных где-либо еще, кроме https://github.com/termux/termux-app. Каждый может использовать его для создания вредоносного обновления Termux, которое можно установить поверх сборки GitHub. Подумайте дважды перед установкой сборок Termux, распространяемых через Telegram или другие социальные сети. Если ваше устройство заразится вредоносным ПО, мы не сможем вам помочь.
Тестовый ключ не должен использоваться для выдачи себя за @termux и в любом случае не может быть использован для этого. Мы не доверяем этому ключу, и его использование довольно легко обнаружить в пользовательском контенте.
Alias name: alias
Creation date: Oct 4, 2019
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=APK Signer, OU=Earth, O=Earth
Issuer: CN=APK Signer, OU=Earth, O=Earth
Serial number: 29be297b
Valid from: Wed Sep 04 02:03:24 EEST 2019 until: Tue Oct 26 02:03:24 EEST 2049
Certificate fingerprints:
SHA1: 51:79:55:EA:BF:69:FC:05:7C:41:C7:D3:79:DB:BC:EF:20:AD:85:F2
SHA256: B6:DA:01:48:0E:EF:D5:FB:F2:CD:37:71:B8:D1:02:1E:C7:91:30:4B:DD:6C:4B:F4:1D:3F:AA:BA:D4:8E:E5:E1
Signature algorithm name: SHA1withRSA (disabled)
Subject Public Key Algorithm: 2048-bit RSA key
Version: 3
В настоящее время в Google Play доступна сборка Termux для устройств Android 11+ с обширными изменениями для соответствия там требованиям политики. Он находится в стадии разработки, и в нем отсутствуют функциональные возможности и ошибки (см. здесь обновления статуса) по сравнению со стабильной сборкой F-Droid, поэтому большинству пользователей, которые могут это сделать, все равно следует использовать сборку F-Droid или GitHub, как упоминалось выше.
В настоящее время Google Play попытается обновить установки, отличные от установок F-Droid. Обновление по-прежнему не удастся, так как общий идентификатор пользователя был удален. В запланированном выпуске 0.118.1 F-Droid это будет исправлено путем установки более высокого кода версии, чем тот, который используется для приложения PlayStore. Между тем, чтобы предотвратить попытки Google Play загрузить, а затем не установить выпуски Google Play поверх существующих установок, вы можете открыть страницы приложений Termux в Google Play, а затем нажать кнопку параметров с тремя точками в правом верхнем углу, а затем отключить Включите переключатель автоматического обновления. Однако обновления приложений Termux по-прежнему будут отображаться в списке обновлений приложений PlayStore.
Если вы хотите помочь с тестированием сборки Google Play (или не можете установить Termux из других источников), имейте в виду, что она собрана из отдельного репозитория (https://github.com/termux-play-store/) – обязательно сообщать о проблемах там, поскольку любые возникшие проблемы вполне могут быть специфичными для этого репозитория.
Удаление может потребоваться, если пользователь больше не хочет, чтобы Termux был установлен на его устройстве, или переключается на другой источник установки. Вы также можете рассмотреть возможность резервного копирования Termux перед удалением.
Чтобы полностью удалить Termux, вы должны удалить все существующие APK-файлы Termux или его плагинов, перечисленные в разделе «Приложение и плагины Termux».
Перейдите в Android Settings
-> Applications
и найдите эти приложения. Вы также можете использовать функцию поиска, если она доступна на вашем устройстве, и termux
поиск в списке приложений.
Даже если вы считаете, что не установили ни один из плагинов, настоятельно рекомендуется просмотреть список приложений в настройках Android и перепроверить его.
Все ссылки сообщества доступны здесь.
Основные из них следующие.
RUN_COMMAND
VTE (libvte): виджет эмулятора терминала для GTK+, в основном используемый в gnome-terminal. Исходный код, открытые проблемы и все (включая закрытые) проблемы.
iTerm 2: терминальное приложение OS X. Источник, проблемы и документация (включая собственные escape-коды iTerm2).
Консоль: терминальное приложение KDE. Источник, в частности тесты, Bugs and Wishes.
hterm: реализация терминала JavaScript из Chromium. Источник, включая тесты и группу Google.
xterm: дедушка эмуляторов терминала. Источник.
Connectbot: Android SSH-клиент. Источник
Эмулятор терминала Android: приложение терминала Android, на котором основана обработка терминала Termux. Неактивен. Источник.
Вы можете помочь в отладке проблем приложения Termux
и его плагинов, установив соответствующий Log Level
logcat
в настройках приложения Termux
->
-> Debugging
-> Log Level
(требуется версия приложения Termux
>= 0.118.0
). По умолчанию для Log Level
установлено Normal
, а на уровне Verbose
в настоящее время регистрируется дополнительная информация. Лучше всего вернуть уровень журнала на Normal
после завершения отладки, поскольку в противном случае личные данные могут быть переданы в logcat
во время нормальной работы, и, кроме того, дополнительное журналирование увеличивает время выполнения.
Приложения-плагины не выполняют команды сами, а отправляют намерения выполнения в приложение Termux
, которое имеет собственный уровень журнала, который можно установить в настройках приложения Termux
-> Termux
-> Debugging
-> Log Level
. Поэтому вы должны установить уровень журнала как для Termux
, так и для настроек соответствующего плагина, чтобы получить всю информацию.
После установки уровней журнала вы можете запустить команду logcat
в терминале приложения Termux
, чтобы просмотреть журналы в реальном времени ( Ctrl+c
, чтобы остановить) или использовать logcat -d > logcat.txt
чтобы сделать дамп журнала. Вы также можете просматривать логи с ПК через ADB
. Для получения дополнительной информации ознакомьтесь с официальным руководством logcat
для Android здесь.
Кроме того, пользователи могут автоматически генерировать информацию stat
файлов termux и дамп logcat
с помощью меню параметров длительного удержания терминала More
-> Report Issue
и выбора YES
в показанном приглашении, чтобы добавить информацию об отладке. Это может быть полезно для составления отчетов и устранения других проблем. Если сгенерированный отчет слишком велик, можно использовать опцию Save To File
в контекстном меню (3 точки в правом верхнем углу) ReportActivity
и вместо этого просмотреть/поделиться файлом.
Пользователи должны опубликовать полный отчет (необязательно без конфиденциальной информации), когда сообщают о проблемах. Проблемы, открытые с (частичными) скриншотами отчетов об ошибках вместо текста, скорее всего, будут автоматически закрыты/удалены.
Off
. — ничего не регистрировать.Normal
— начало регистрации ошибок, предупреждений и информационных сообщений, а также трассировки стека.Debug
— начало регистрации отладочных сообщений.Verbose
— начать регистрацию подробных сообщений. Общая библиотека termux была добавлена в v0.109
. Он определяет общие константы и утилиты приложения Termux и его плагинов. Он был создан, чтобы обеспечить удаление всех жестко закодированных путей в приложении Termux. Некоторые плагины termux также используют это, а остальные будут использовать в будущем. Если вы вносите код, использующий константу или утилиту, которая может быть общей, определите ее в termux-shared
если она в настоящее время не существует, и ссылайтесь на нее оттуда. Также обновите соответствующие журналы изменений. Запросы на включение с использованием жестко запрограммированных значений не будут приниматься. Конкретные классы приложения и плагина Termux должны быть добавлены в пакет com.termux.shared.termux
, а общие классы — вне его. Общая LICENSE
termux-shared
также должна быть проверена и обновлена, если необходимо, при добавлении кода. Лицензии любой внешней библиотеки или кода должны соблюдаться.
Основные константы Termux определяются классом TermuxConstants
. Он также содержит информацию о том, как разветвить Termux или собрать его с собственным именем пакета. Изменение имени пакета потребует сборки загрузочных zip-пакетов и других пакетов с новым $PREFIX
, для получения дополнительной информации проверьте «Сборка пакетов».
Проверьте библиотеки Termux, чтобы узнать, как импортировать библиотеки termux в приложения-плагины, а также раздел «Разветвление и локальная разработка», чтобы узнать, как обновлять библиотеки termux для плагинов.
versionName
в файлах build.gradle
Termux и его плагинов должно соответствовать семантической спецификации версии 2.0.0
в формате major.minor.patch(-prerelease)(+buildmetadata)
. При добавлении versionName
в файлы build.gradle
и при создании тега для новых выпусков на GitHub обязательно указывайте также номер патча, например v0.1.0
, а не просто v0.1
. Файлы build.gradle
и рабочий процесс attach_debug_apks_to_release
также проверяют версию, и сборка/вложение завершится неудачей, если versionName
не соответствует спецификации.
Сообщения о фиксации должны использовать спецификацию «Обычные фиксации», чтобы журналы изменений в соответствии со спецификацией «Сохранить журнал изменений» могли автоматически генерироваться сценарием create-conventional-changelog
. Дополнительную информацию о спецификации можно найти в его репозитории. Первая буква type
и description
должна быть заглавной, а описание должно быть в настоящем времени. Пробел после двоеточия :
обязателен. Для критического изменения добавьте восклицательный знак !
перед двоеточием :
, чтобы оно автоматически выделялось в журнале изменений.
[optional scope]:
[optional body]
[optional footer(s)]
Только types
, перечисленные ниже, должны использоваться точно так, как они используются в заголовках журнала изменений. Например, Added: Add foo
, Added|Fixed: Add foo and fix bar
, Changed!: Change baz as a breaking change
и т. д. При желании вы также можете добавить область действия, например Fixed(terminal): Fix some bug
. Не используйте в качестве типа ничего другого, например add
вместо Added
и т. д.
TermuxConstants
для получения инструкций о том, какие изменения следует внести в приложение, чтобы изменить имя пакета.TermuxConstants
из termux-shared
и имеют жестко запрограммированные значения com.termux
, поэтому их необходимо исправлять вручную.