- AndroidでLinux環境とターミナル機能を提供するオープンソースアプリで、多様なパッケージをインストールして拡張可能
- Termux:API, Boot, Float, Styling, Tasker, Widget など複数のプラグインアプリで機能を補完
- インストールは F-Droid、GitHub、Google Play(実験的) などから可能で、各ソースの署名鍵が異なるため混在利用不可
- Android 12以降ではプロセス制限による不安定性が発生する可能性があり、関連Issueと解決リンクを提供
- 開発者とメンテナー向けの共有ライブラリ(termux-shared)、コミットメッセージ規則、フォーク指針 などが明確に文書化されている
Termux 概要
- Termux は、AndroidでLinux環境を提供するターミナルエミュレーターアプリ
- Android 12以降では、プロセス数32個制限およびCPU過剰使用時のプロセス終了問題が発生する可能性あり
- 関連Issueと解決方法は GitHub Issue #2366 および Androidドキュメントへのリンクで案内
Termux アプリとプラグイン
- 基本アプリのほか、次のようなプラグインアプリをサポート
- Termux:API, Termux:Boot, Termux:Float, Termux:Styling, Termux:Tasker, Termux:Widget
- すべてのプラグインは同一の sharedUserId(com.termux) を使用するため、同じ署名鍵で署名されたAPKのみ一緒にインストール可能
インストール方法
- 最新バージョンは v0.118.3、Android 7以降を完全サポート
- Android 5・6のサポートは2020年に終了したが、2022年にGitHubソースでアプリのみ再サポート
- 署名鍵が異なるソース(F-Droid、GitHubなど)を混在インストールするとエラーが発生
- 別ソースからインストールするには、既存のTermuxおよびプラグインAPKをすべて削除してから再インストールが必要
F-Droid
- F-Droidから直接APKをダウンロード可能で、アプリインストール後の更新は手動確認が必要
- F-DroidビルドはTermux開発者ではなくF-Droid側で管理されており、署名鍵が異なる
- アーキテクチャ別APKは提供されず、単一のuniversal APK(約180MB) のみ配布
GitHub
- GitHub Releases または Build Action を通じてAPKを提供
- Android 7以降は
apt-android-7、Android 5・6は apt-android-5 バージョンを使用
- GitHubビルドAPKはテスト鍵(testkey_untrusted.jks) で署名されており、誰でも同じ鍵でビルド可能
- 悪意あるバージョンが配布されるリスクがあるため、公式GitHubリポジトリ以外の出所のAPKインストールは非推奨
- universal APKは約180MB、アーキテクチャ別APKは約120MB
Google Play(実験的)
- Android 11以降向けのポリシー対応版がGoogle Playに存在するが、機能欠落やバグあり
- Play版は別リポジトリ(termux-play-store)で開発中
- F-Droid版とはsharedUserId削除により互換性がなく、自動更新の無効化を推奨
削除とバックアップ
- 別のインストール元へ切り替える場合やアプリ削除時は、すべてのTermuxおよびプラグインAPKを完全に削除する必要がある
- 削除前に Backing up Termux 手順でデータのバックアップが可能
コミュニティとドキュメント
- 主なコミュニティ: Reddit(r/termux)、Matrix/Gitterチャンネル、Twitter(@termuxdevs)、サポートメール(support@termux.dev)
- 公式ドキュメント:
- 追加資料: FAQ、ファイルシステム構造、リモートアクセス、Androidストレージアクセス、ターミナル設定など
5件のコメント
ちょうど軍隊でスマホを使い始めた世代なんですが、
Termuxを入れてWeb開発の練習をしたり、インタプリタを書いてみたりしました。
Rustの本も持ち込んで勉強しました。
久しぶりにGUIから離れて、
テキスト環境に没頭していると楽しかったです。
vimもTermuxを使いながら覚えました。Hacker Newsのコメントみたいに、
今でも新しいAndroid端末を手に入れたら、
必ずTermuxをインストールします。
個人的には、外出先でコードをモニタリングする必要があるときに、ちょっとサーバーへsshする用途でとても重宝しています
Pixelスマホを使っていますが、最新のAndroidバージョンでは開発者設定からLinuxコンテナのインストールが公式に可能になったんです(他のスマホでもできるのかは分かりませんが、たぶんできるでしょうね?)
もともとTermuxは、たまに取り出して遊ぶおもちゃ的な感じ、あるいは無理やり用途を挙げるなら
pingテストくらいの目的で入れてはいたのですが、今はもうそういう用途すら必要なさそうな気がしています。面白いアプリだったので、別れを告げるのが少し惜しい気もします。
CopyPartyはYouTubeで「後で見る」動画リストに寝かせていたんですが、HNのコメントを見たら同じ人のものだったんですね o.o
Hacker Newsのコメント
私が最も気に入っているソフトウェアの1つは、スマホにTermuxを入れた人が作った Copyparty です
GitHub リンクは こちら、関連する YouTube動画 もあります
新しいAndroid端末を手に入れるたびに、まず最初に Termux をインストールします
Bluetoothキーボードケースをつないで、ソファでNeovimを使ってリモートコーディングをし、vimwikiでノートを管理してGitHubに同期しています
ほとんどのCLIツールはTermuxのリポジトリにあり、なければ clang, cmake などで自分でビルドします
Termuxのおかげで、今でもAndroidをメインで使っています
私のTermuxの用途は写真バックアップの自動化です
NASに写真をバックアップしていますが一部が欠けるので、NASで MD5チェックサム を計算し、スマホ上の同じファイルを削除するスクリプトをTermuxで実行しています
こうすると数十GBの容量を安定して確保できます
関連するNextcloudのissueは こちら
AIベースの開発が増えるにつれて、Termux, tmux のようなツールを使う人も増えそうです
スマホでのタイピングは大変ですが、Unexpected Keyboard(リンク)のようなキーボードとvimモードのおかげで、かなり実用的です
私はTermuxで SSHを必要なときだけ実行 しています
Termuxを開くとSSHが立ち上がり、閉じると終了します。rsyncでファイルを同期するにはそれで十分です
常時起動しておく必要がないので、LocalSendやSyncThingのようなアプリは使っていません。デスクトップ側の簡単なsyncスクリプトで方向だけ指定して実行しています
最近はハードウェアキーボード付きのAndroidスマホがないので、こういうアプリはほとんど使っていません
昔のMotorola Droidの時代には、TermuxとConnectBotで 生産性の高い環境 を作っていました
今では潜在力も下がり、ハードウェアの多様性やブートローダーの開放性も昔ほどではありません。Termuxはあの頃の懐かしさを思い出させます
Termuxでは tmux, fish, git, yazi のような環境をそのまま使えます
Rustアプリもビルド可能で、TUIアプリがタッチ入力に反応するのが驚きです
iOSにもこのレベルのターミナルがあるのか気になります
最近のAndroidに フルLinux環境 ができたそうですが、それでもTermuxはまだ必要なのでしょうか?
関連する議論は r/androidterminal でよく見かけます
一方、新しいLinuxターミナルは別のVM上で動くため、より多くのストレージを使います
Termuxは私にとって最高の Androidターミナルエミュレータ です
fzf、Neovim、Gitでノートを整理し、SSHでリモート接続もしています
GoでCLIやTUIをビルドしてNDKでコンパイルすれば、Termuxでそのまま実行できます
正直気になるのですが、こんなに小さいタッチスクリーンで ターミナル環境 をどう使っているのでしょうか?
:helpドキュメントを見ながら練習していました。今ではすっかり慣れています